我有一个像这样的数组
["Apr 2014", "Sep 2015", "Jul 2010", "Jun 2016", "Sep 2013"]
我想将此数组排序为日期。但是当我在日期函数new Date("Apr 2014")
中使用它时,它显示无效的日期格式错误。
我如何对这个数组进行排序?
答案 0 :(得分:1)
您可以使用一个分隔日期字符串的函数,并返回一个包含年份和月份数字的数组。月份取自具有月份名称的对象作为哈希值。
var array = ["Apr 2014", "Sep 2015", "Jul 2010", "Jun 2016", "Sep 2013", "Jan 2013"];
array.sort(function (a, b) {
function getMonth(m) {
return {
jan: 1, feb: 2, mar: 3, apr: 4, may: 5, jun: 6, jul: 7, aug: 8, sep: 9, oct: 10, nov: 11, dec: 12
}[m.slice(0, 3).toLowerCase()] || 0;
}
var aa = a.split(' '),
bb = b.split(' ');
return aa[1] - bb[1] || getMonth(aa[0]) - getMonth(bb[0]);
});
console.log(array);