我正在尝试按时间戳列Descending对二维数组进行排序。该列(索引11)的格式为:'yyyy-MM-dd HH:mm:ss'。我尝试了很多东西。根据我读过的主题,这段代码应该有效:
List.sort(function(x, y){
return Date.parse(y[11]) - Date.parse(x[11]);
});
提前谢谢!
答案 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