Order json object by timestamp string

Here’s some code I found useful to sort a json object by timestamp.

// json object   		
var dates = [ {"time":"October 11, 2011 11:13:00"},{"time":"October 20, 2011 11:13:00"},{"time":"October 30, 2011 11:13:00"},{"time":"October 01, 2011 11:13:00"}];
 
/* function sort by ascending
  *@param date1 first date to compare
  *@param date2 second date to compare
*/
var date_sort_asc = function (date1, date2) {
  if (new Date(date1.time) > new Date(date2.time)) return 1;
  if (new Date(date1.time) < new Date(date2.time)) return -1;
  return 0;
};
 
/* function sort by descending
  *@param date1 first date to compare
  *@param date2 second date to compare
*/
var date_sort_desc = function (date1, date2) {
  if (new Date(date1.time) > new Date(date2.time)) return -1;
  if (new Date(date1.time) < new Date(date2.time)) return 1;
  return 0;
};
 
 
// SORT THE DATES
 
dates.sort(date_sort_asc);
 
document.write('<h3>Ascending Order (oldest to newest)</h3>');
for (var i = 0; i < dates.length; i++) {
  document.write(new Date(dates[i].time) + '<br>');
}
 
dates.sort(date_sort_desc);
 
document.write('<h3>Descending order (newest to oldest)</h3>');
for (var i = 0; i < dates.length; i++) {
  document.write(new Date(dates[i].time) + '<br>');
}

Result:

Ascending Order (oldest to newest)

Sat Oct 01 2011 11:13:00 GMT-0700 (PST)
Tue Oct 11 2011 11:13:00 GMT-0700 (PST)
Thu Oct 20 2011 11:13:00 GMT-0700 (PST)
Sun Oct 30 2011 11:13:00 GMT-0700 (PST)

Descending order (newest to oldest)

Sun Oct 30 2011 11:13:00 GMT-0700 (PST)
Thu Oct 20 2011 11:13:00 GMT-0700 (PST)
Tue Oct 11 2011 11:13:00 GMT-0700 (PST)
Sat Oct 01 2011 11:13:00 GMT-0700 (PST)

December 27th, 2010 | Categories: Development |

Leave a Comment


Make sure you enter the *required information where indicated.