Profiling javascript date functions

Simple time tests for javascript date objects and date math. Requires console.time enabled browser.

by Riffic

JavaScript

/**
Profiling javascript dates and date math. End result- use getTime() where possible
**/

console.time("MS Date init");
for(var i=0; i < 1000000; i++){
  var dT = new Date( 1357027200000 )
}
console.timeEnd("MS Date init");
console.time("Human Date Init");
for(var i=0; i < 1000000; i++){
 var d=new Date(2013, 0, 1); 
}
console.timeEnd("Human Date Init");

var tDate1 = new Date(2014,0,1),
    tDate2 = new Date(2013,0,1);
console.time("Date to Date");
for(var i=0; i < 1000000; i++){
  tDate2.setTime( tDate1 );
}
console.timeEnd("Date to Date");

/**Winner of updating time**/
console.time("Date time to Date");
for(var i=0; i < 1000000; i++){
  tDate2.setTime( tDate1.getTime() );
}
console.timeEnd("Date time to Date");

console.time("Date parse to Date");
for(var i=0; i < 1000000; i++){
  tDate2.setTime( Date.parse( tDate1 ) );
}
console.timeEnd("Date parse to Date");

console.time("Date math raw date");
for(var i=0; i < 1000000; i++){
  var timeDiff = tDate1 - tDate2;
}
console.timeEnd("Date math raw date");

/**Winner of math**/
console.time("Date math getTime");
for(var i=0; i < 1000000; i++){
  var timeDiff = tDate1.getTime() - tDate2.getTime();
}
console.timeEnd("Date math getTime");

//Random tidbits
//note getDate() gets day of month, not date object
console.log("Dates Equal?", tDate1 == tDate2, tDate1 === tDate2, tDate1.getDate() == tDate2.getDate() );