Javascript 排序日期数组
我有一个日期数组$myArrayJavascript 排序日期数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个日期数组$myArray (2012-09-31,1999-01-23,2018-08-29,1808-04-20,2017-11-05,1001-10-01,) 我想列出这些日期,从最新到最旧,我正在使用一个函数 function myFunction() { myArray.sort(function(a, b){return b-a}); } 上述函数似乎没有以任何特定方式对数组进行排序。您可以使用sort()而无需任何参数,因为它将按字母顺序对数组进行排序,并使用此时间格式,
(2012-09-31,1999-01-23,2018-08-29,1808-04-20,2017-11-05,1001-10-01,)
我想列出这些日期,从最新到最旧,我正在使用一个函数
function myFunction() {
myArray.sort(function(a, b){return b-a});
}
上述函数似乎没有以任何特定方式对数组进行排序。您可以使用sort()
而无需任何参数,因为它将按字母顺序对数组进行排序,并使用此时间格式,然后将其反转:
var列表=['2012-09-31'、'1999-01-23'、'2018-08-29'、'1808-04-20'、'2017-11-05'、'1001-10-01'];
console.log(list.sort().reverse())代码>在这种特殊情况下,您实际上可以使用来进行比较
原因是您的日期字符串的格式从最一般到最具体,并且长度都相同
var myArray=['2012-09-31','1999-01-23','2018-08-29','1808-04-20','2017-11-05','1001-10-01'];
函数myFunction(){
排序(函数(a,b){
返回b.localeCompare(a);
});
}
myFunction();
log(myArray)
您应该使用字符串创建new Date()
,b/c javasciprt不理解您的字符串是日期,请看我们无法根据问题中的内容帮助您,因为我们不知道您的数组中有什么。日期实例?串?如果是日期实例,b-a
会起作用,所以…@Rory,你删除的答案是正确的。我认为评论者在日期调用中省略了new
,这将导致不同的结果。@spanky您可能是正确的,尽管我认为您使用localeCompare()
的方法更好:)我太习惯于使用.localeCompare()
,以至于我忘记了默认的.sort()
按字母顺序排列。在这里单独使用.sort()
更好。