gpt4 book ai didi

Javascript 按年份 DESC、月份 ASC、日期 ASC 对数组中的日期进行排序

转载 作者:行者123 更新时间:2023-11-30 16:10:01 27 4
gpt4 key购买 nike

我有一组类和它们从 AJAX 到 PHP 调用返回的日期。它作为“数据”返回,所以我们只调用我们的数组数据:

var data = [{
"course": "First Aid",
"courseDate": "2016-04-25T00:00:00-06:00"
}, {
"course": "CPR",
"courseDate": "2016-04-06T00:00:00-06:00"
}, {
"course": "ASL1",
"courseDate": "2016-01-07T00:00:00-06:00"
}, {
"course": "ASL2",
"courseDate": "2016-03-25T00:00:00-06:00"
},
...etc...
];

我需要能够按日期降序显示它们。我正在使用这个简单的功能:

data.sort(function(a, b) {
a = new Date(a.courseDate);
b = new Date(b.courseDate);
return a > b ? -1 : a < b ? 1 : 0;
});

$.each(data, function(key, val) {
$('#courseHist').append('<br />' + val.course+' - '+val.courseDate);
});

正如预期的那样,我得到了返回

1st Aid - 2016-04-25...
CPR - 2016-04-06...
ASL2 - 2016-03-25...
ASL1 - 2015-12-07...

从技术上讲,这是按日期降序排列的。但是,我需要返回按年降序排序,然后按月升序排序,然后按日期升序排序。像这样:

ASL2 - 2016-03-25...
CPR - 2016-04-06...
1st Aid - 2016-04-25...
ASL1 - 2015-12-07...

我知道我需要将我的约会返回分解成 block 并从那里开始安排,但我就是不知道该怎么做。非常感谢任何帮助!

或者,如果有人对此有解决方案,我可以在 PHP 端完成。

我有一把 fiddle HERE如果你想搞砸它。 - 使用来自用户 blex 的工作代码更新

最佳答案

你可以拆分数据并按年降月升日独立排序。

var data = [{ "course": "First Aid", "courseDate": "2016-04-25T00:00:00-06:00" }, { "course": "CPR", "courseDate": "2016-04-06T00:00:00-06:00" }, { "course": "ASL1", "courseDate": "2016-01-07T00:00:00-06:00" }, { "course": "ASL2", "courseDate": "2016-03-25T00:00:00-06:00" }, { "course": "ASL2X", "courseDate": "2015-03-25T00:00:00-06:00" }];

data.sort(function (a, b) {
var aa = a.courseDate.split(/\D/),
bb = b.courseDate.split(/\D/);
return bb[0] - aa[0] || aa[1] - bb[1] || aa[2] - bb[2];
});

document.write('<pre>' + JSON.stringify(data, 0, 4) + '</pre>');

关于Javascript 按年份 DESC、月份 ASC、日期 ASC 对数组中的日期进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36412402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com