我有一组JSON对象,每个对象都有一个日期作为其中一个字段。
var array = [{id: 1, date:'Mar 12 2012 10:00:00 AM'},{id: 2, date:'Mar 8 2012 08:00:00 AM'}]
我想根据时间戳以降序对对象进行排序。我为它写了一个实用工具。即。
var sortedData= array .sort((function (a, b) { return new Date(b.date) - new Date(a.date) }));
但是上述实用程序仅基于日期。在3月12日和3月8日的情况下进行排序。它没有考虑上午10点和上午8点的时间因素。如何使用参数,日期和时间来完成排序。
答案 0 :(得分:1)
var array = [{id: 1, date:'Mar 12, 2012 07:00:00 AM'},
{id: 2, date:'Mar 12, 2012 08:00:00 AM'}];
var sortedData= array .sort((function (a, b) {
return new Date(b.date) - new Date(a.date)
}));
console.log(sortedData);
缺少","在你的数组之后的一年
工作小提琴(即使在AM和PM之间只有相同的值也能完美地工作)
答案 1 :(得分:0)
您应该使用timestamp
进行日期比较,并将比较标志返回sort
函数试试此代码
var array = [{id: 1, date:'Mar 12 2012 10:00:00 AM'},{id: 2, date:'Mar 8 2012 08:00:00 AM'}]
function SortByDate(a, b){
var aD = new Date(a.date).getTime(), bD = new Date(b.date).getTime();
return ((aD < bD) ? -1 : ((aD > bD) ? 1 : 0));
}
console.log(array.sort(SortByDate));