繁体   English   中英

使用JavaScript从最早到最新对数组中的日期进行排序

[英]Sort dates in an array from earliest to latest in JavaScript

用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()));
}

date对象具有内置的比较功能,您只需要告诉它该做什么。

dateArray.sort(function (a, b) {
  return (a > b) - (a < b);
});

传递您自己的比较函数进行sort

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

另请注意.sortMDN页面:

compareFunction

可选的。 指定定义排序顺序的函数。 如果省略,则根据每个字符的Unicode代码点值 (根据每个元素的字符串转换)对数组进行排序。

默认情况下,您是按日期的toString()方法的结果按字母顺序对日期进行排序,这可能是按星期几的字母顺序进行排序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM