Javascript比较时间戳

时间:2012-06-25 12:36:41

标签: javascript sorting timestamp

我正在尝试按时间戳列Descending对二维数组进行排序。该列(索引11)的格式为:'yyyy-MM-dd HH:mm:ss'。我尝试了很多东西。根据我读过的主题,这段代码应该有效:

 List.sort(function(x, y){
     return Date.parse(y[11]) - Date.parse(x[11]);
});

提前谢谢!

2 个答案:

答案 0 :(得分:5)

这将适用于支持Date.parse最近定义的输入格式的最新浏览器(在ES5之前,它只是“解析Date#toString吐出的任何内容”)。

虽然从未指定,但旧版浏览器会在日期中使用/而不是-来支持它,所以:

List.sort(function(x, y){
     return Date.parse(y[11].replace(/-/g, '/')) - Date.parse(x[11].replace(/-/g, '/'));
});

当然,总是在目标浏览器上进行测试,因为从未指定过。

例如,在IE8及更早版本:

display(Date.parse("2012-06-01 14:22:17"));

...是NaN,但是:

display(Date.parse("2012/06/01 14:22:17"));

...是1338556937000

答案 1 :(得分:1)

由于您已经将字符串以完美的格式进行比较,因此我将完全跳过日期解析:

List.sort(function(x, y){
     return y[11] > x[11] ? 1 : -1;
});

虽然为了完整性,如果字符串相等则应该返回0