基于时间戳对JSON对象进行排序

Sorting JSON objects on the basis of timestamp

本文关键字:排序 对象 JSON 时间戳      更新时间:2023-09-26

我有一个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) }));

,但以上实用程序仅根据日期i进行排序。3月12日和3月8日。它没有考虑到上午10点和上午8点的时间因素。如何同时使用参数、日期和时间进行排序

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之间的差异)

http://jsfiddle.net/qR8cW/1/

您应该使用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)); 

小提琴演示