1. 程式人生 > >js將帶有日期格式的陣列物件按時間降序重新排列,最後列印陣列物件的日期

js將帶有日期格式的陣列物件按時間降序重新排列,最後列印陣列物件的日期

需求:後臺將一個帶有日期格式(不是時間戳)的陣列物件給到前端,前端列印這個陣列物件的日期時需要按時間降序排列

思路:

1.先將物件中的日期欄位變成時間戳,然後通過sort()來排序,接著將物件中的時間戳變成日期; 2.先給物件增加一個欄位publishTimeNew,用來儲存時間戳;然後通過sort()來排序publishTimeNew

雖然第二種思路多增加了一個publishTimeNew欄位佔用空間,但是減少了最後將時間戳變成日期的操作,所以我選擇了第二個思路,下面是我的實現:

<script>
    var data = [
    {
        id: 1,
        publishTime: "2018-07-02 10:39:43"
    },
    {
        id: 2,
        publishTime: "2018-07-14 10:39:43"
    },
    {
        id: 3,
        publishTime: "2018-07-15 10:39:43"
    },
    {
        id: 4,
        publishTime: "2018-07-13 10:39:43"
    }]
    var dateToTime = function(str){
		return (new Date(str.replace(/-/g,'/'))).getTime(); //用/替換日期中的-是為了解決Safari的相容
    }
    for(var i=0; i < data.length; i++){
        data[i].publishTimeNew = dateToTime(data[i].publishTime);
    }
    data.sort(function(a, b) {
                    return b.publishTimeNew> a.publishTimeNew ? 1 : -1;
    });
    console.log(data);
</script>

在這裡插入圖片描述