在JavaScript中对日期字符串数组进行排序的最佳方法

时间:2015-08-08 22:14:07

标签: javascript sorting

对日期字符串数组进行排序的最佳方法是:

var array = ["Tue 7/28", "Sat 8/1", "Sun 8/2", "Mon 7/27", "Thu 7/30", "Fri 7/31", "Wed 7/29"];

进入这个:

var array = ["Mon 7/27", "Tue 7/28", "Wed 7/29", "Thu 7/30", "Fri 7/31", "Sat 8/1", "Sun 8/2"];

1 个答案:

答案 0 :(得分:3)

您需要以某种方式使日期具有可比性,因此您可以使用函数将它们转换为可比较的东西。您可以跳过工作日并获取月和日并将其转换为数字:

array.sort(function(a, b){ return decodeDate(a) - decodeDate(b); });

使用它可以对数组进行排序:

function decodeDate(s) {
  parts = s.substr(4).split('/');
  return parseInt(parts[0], 10) * 40 + parseInt(parts[1], 10);
}

var array = ["Tue 7/28", "Sat 8/1", "Sun 8/2", "Mon 7/27", "Thu 7/30", "Fri 7/31", "Wed 7/29"];

array.sort(function(a, b){ return decodeDate(a) - decodeDate(b); });

document.write(JSON.stringify(array));

演示:

status