在JavaScript中从最早到最新的数组中排序日期的最佳方法是什么? dateArray.sort()
似乎根本不起作用。
这是我到目前为止所尝试的:
var dateArray = new Array();
for(i=0;i<timelineItemCount;i++)
{
var today = new Date();
var randomDates = randomDate(today, new Date(today.getFullYear(), today.getMonth(), today.getDate()+7));
dateArray.push(randomDates);
}
dateArray.sort();
console.log(dateArray);
function randomDate(start, end) {
return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
}
答案 0 :(得分:2)
日期对象内置了比较,您只需要告诉它该做什么。
dateArray.sort(function (a, b) {
return (a > b) - (a < b);
});
答案 1 :(得分:2)
将您自己的比较功能传递给sort
:
dateArray.sort(function (a, b) {
return a - b;
});
另请注意.sort
上的MDN页面:
<强>的compareFunction 强>
可选。指定定义排序顺序的函数。如果省略,则根据每个字符的Unicode代码点值对数组进行排序,具体取决于每个元素的字符串转换。
默认情况下,您按照toString()
方法的结果按字母顺序对日期进行排序,这可能按字母顺序按星期几显示。