订购日期javascript的数组

时间:2017-08-29 14:18:09

标签: 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});
}

上述函数似乎没有以任何特定方式对数组进行排序。

2 个答案:

答案 0 :(得分:4)

在这种特殊情况下,您实际上可以使用.localeCompare()进行比较。

原因是您的日期字符串被格式化为最具体的,并且长度都相同。



var 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.localeCompare(a);
  });
}

myFunction();

console.log(myArray);




如果可以删除某个月或某天的前导0,或者格式为yyyy-dd-mmmm-dd-yyyy,则无效。

答案 1 :(得分:3)

您可以使用sort()而不使用任何参数,因为它会按字母顺序排序,使用此时间格式,然后将其反转:

var list = ['2012-09-31', '1999-01-23', '2018-08-29' , '1808-04-20', '2017-11-05', '1001-10-01'];

console.log(list.sort().reverse());