gpt4 book ai didi

javascript - 以 dd-mmm-yy 格式对包含日期的数组进行排序

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

我正在尝试使用 sort() 函数对包含字符串格式 (dd-mmm-yy) 日期的数组进行排序:

var array = ["1-jun-15", "1-feb-15", "1-apr-15", "1-may-15", "1-jan-15", "1-mar-15"];

array.sort(function(a, b) {
return new Date(a).getTime() - new Date(b).getTime();
});

但没有成功。

这里出了什么问题? Here is the JSFiddle .

编辑:虽然通过小的修正解决了排序问题,但主要问题是跨浏览器支持,下面的许多答案都有不同的解决方法。

最佳答案

您可以拆分日期字符串并使用一个对象作为月份值。

该提案首先按年排序,然后按对象的月份排序,然后按天排序。

var array = ["1-jun-15", "1-feb-15", "1-apr-15", "1-may-15", "1-jan-15", "1-mar-15"],
MONTHS = { jan: 1, feb: 2, mar: 3, apr: 4, may: 5, jun: 6, jul: 7, aug: 8, sep: 9, oct: 10, nov: 11, dec: 12 };

array.sort(function (a, b) {
var aa = a.split('-'),
bb = b.split('-');

return aa[2] - bb[2] || MONTHS[aa[1]] - MONTHS[bb[1]] || aa[0] - bb[0];
});

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 以 dd-mmm-yy 格式对包含日期的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40866236/

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