按日期对多维数组进行排序

rpsep2

我有一个格式像这样的数组:

arr = [
    {
     'thing':'thing',
     'thing2':'thing',
     'date':'28/07/2014 14:16'
    },
    {
     'thing':'thing',
     'thing2':'thing',
     'date':'27/07/2014 14:16'
    }
]

我想按日期对它进行排序(最新的优先,或更确切地说,最新的是0索引)

我怎样才能做到这一点?

更新

就像是

arr.sort(function(a,b){
    return new Date(b.date) - new Date(a.date);
});

从理论上讲应该可以工作,但是,由于某种原因,我的new date()由于某种原因在数组中的某些项目上返回了“无效日期”,例如,我遇到了问题:

arr.sort(function(a,b){
            console.log(b.date)
            console.log(new Date(b.date))
            return new Date(b.date) - new Date(a.date);
        });

我得到记录:

09/01/2014 14:23
Mon Sep 01 2014 14:23:00 GMT+0100 (GMT Daylight Time)

23/07/2014 09:04
Invalid Date

23/07/2014 09:04
Invalid Date

09/01/2014 14:23
Mon Sep 01 2014 14:23:00 GMT+0100 (GMT Daylight Time)

这是怎么回事?

用户名

这应该工作,请检查旧的IE浏览器,我认为它也应该在那里工作http://jsfiddle.net/9t3Xq/

 arr.sort(function(a, b) {
    var valueA, valueB;

    var dates1 = a.date.split(" ");
    var dates2 = b.date.split(" ");

    var dates1YMD = dates1[0].split("/");
    var dates2YMD = dates2[0].split("/");

    var dates1HIS = dates1[1].split(":");
    var dates2HIS = dates2[1].split(":");

    valueA = new Date(dates1YMD[2], dates1YMD[1], dates1YMD[0], dates1HIS[0], dates1HIS[1]);
    valueB =  new Date(dates2YMD[2], dates2YMD[1], dates2YMD[0], dates2HIS[0], dates2HIS[1]);
    return valueB - valueA;
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章