如何按日期排序javascript数组

How to sort a javascript array by date

本文关键字:javascript 数组 排序 日期 何按      更新时间:2023-09-26

例如,在我的数组中,我有这个数据

var mydate = [
"2016,10,01",
"2016,09,13", 
"2016,09,05",
"2016,09,09", 
"2016,10,02"];

如何排序?我想要这样的输出:

2016,09,05
2016,09,09
2016,09,13
2016,10,01
2016,10,02

一个简单的mydate.sort()就可以做到。

您必须将日期解析为日期对象,然后使用date.getTime()进行排序

var mydate = [
  "2016,10,01",
  "2016,09,13",
  "2016,09,05",
  "2016,09,09",
  "2016,10,02"
];
mydate.sort(function(a,b){
  var da = new Date(a).getTime();
  var db = new Date(b).getTime();
  
  return da < db ? -1 : da > db ? 1 : 0
});
console.log(mydate)

使用 Array#sort 方法与 Date 构造函数。

var mydate = [
  "2016,10,01",
  "2016,09,13",
  "2016,09,05",
  "2016,09,09",
  "2016,10,02"
];
mydate.sort(function(a, b) {
  return new Date(...a.split(',')) - new Date(...b.split(','));
});
console.log(mydate);

旧的浏览器不支持扩展语法,在这种情况下,请按原样执行。

var mydate = [
  "2016,10,01",
  "2016,09,13",
  "2016,09,05",
  "2016,09,09",
  "2016,10,02"
];
mydate.sort(function(a, b) {
  var a1 = a.split(','),
    b1 = b.split(',');
  return new Date(a1[0], a1[1], a1[2]) - new Date(b1[0], b1[1], b1[2]);
});
console.log(mydate);

var mydate = [
  "2016,10,01",
  "2016,09,13",
  "2016,09,05",
  "2016,09,09",
  "2016,10,02"
];
mydate.sort(function(a,b){
  var da = new Date(a).getTime();
  var db = new Date(b).getTime();
  
  return da - db
});
console.log(mydate)