1

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

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

先感谢您!

4

2 回答 2

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

于 2012-06-25T12:39:23.743 回答
1

由于您已经获得了完美格式的字符串来比较它们,因此我将完全跳过日期解析:

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

尽管为完整性起见,如果字符串相等,则应返回 0

于 2012-06-25T12:44:57.353 回答