2015-03-02 166 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