2015-03-02 116 views
0

我想排序我的日期值按日期最新的第一个和最新的最后一个对象的数组。JavaScript对象排序按日期

我有以下代码:

function comp(a, b) { 
    return new Date(a.jsDate) - new Date(b.jsDate); 
} 

function compNewestFirst(a, b) { 
    return new Date(b.jsDate) - new Date(a.jsDate); 
} 

请注意JS日期是有效日期/格式化新的日期()接受。

我可以得到它最古老的排序第一,但不是最新的第一个,我已经试过如下:

return new Date(b.jsDate) + new Date(a.jsDate); 

电流I CAN NOT排序方式最新日期第一,它仅适用旧的排在前面。

感谢

+2

那么问题是什么? – hindmost 2015-03-02 14:09:35

+0

如何排序最新的第一个而不是最早的第一个 – LmC 2015-03-02 14:11:39

回答

1

试试:

function compNewestFirst(a, b) { 
    return new Date(b.jsDate).getTime() - new Date(a.jsDate).getTime(); 
} 

的回报将是一个负整数,你将可以订购。

这里是FIDDLE;

+0

为什么使用'getTime()'? – Hacketo 2015-03-02 14:17:43

+0

@Hacketo你是对的。不需要使用'getTime()',因为减法已经以毫秒为单位返回结果 – nanndoj 2015-03-02 14:31:27