使用dd / mm / yyyy格式的JavaScript对日期进行排序

瓦伦丁

我对函数排序日期有一些疑问。我想按ASC或DESC对所有日期进行排序,但排序不正确。

我的约会

let a = [
    "03/12/2019", "17/10/2020", "02/12/2019", "08/12/2019", "13/02/2020", 
    "23/03/2020", "18/11/2020", "29/02/2020", "05/12/2019", "03/06/2020",
    "06/05/2020", "09/09/2020", "28/10/2020", "07/04/2020", "27/04/2020",
    "28/05/2020", "29/12/2019", "31/10/2020", "23/09/2020", "25/12/2019",
    "14/01/2020", "30/09/2020", "18/05/2020", "14/06/2020", "25/04/2020",
    "19/08/2020", "26/03/2020", "19/05/2020", "15/03/2020", "11/10/2020",
    "25/04/2020", "16/12/2019", "14/08/2020", "19/08/2020", "28/02/2020",
    "01/01/2020", "07/06/2020", "17/11/2020", "22/05/2020", "31/07/2020",
    "20/01/2020", "07/02/2020", "18/08/2020", "16/02/2020", "13/03/2020",
    "21/12/2019", "02/03/2020", "24/07/2020", "01/05/2020", "31/01/2020",
    "25/11/2020", "07/07/2020", "16/07/2020", "06/07/2020", "16/09/2020",
    "29/07/2020", "19/06/2020", "09/08/2020", "25/08/2020", "21/02/2020",
    "30/11/2019", "04/06/2020", "06/09/2020", "10/09/2020", "26/11/2020",
    "22/07/2020", "21/05/2020", "25/07/2020", "05/01/2020", "17/06/2020",
    "14/07/2020"
];

功能排序

b.sort((d1, d2) => new Date(d1).getTime() - new Date(d2).getTime());

或替代

b.sort((b, a) => {
 if (b > a) {
   return 1;
 }
 if (b < a) {
   return -1;
 }
 return 0;
})
阿拉木斯

这是因为日期采用英国格式,因此无论月份还是年份,它都将按升序对日期进行排序。如果将它们转换为YYYY-MM-DD格式,它将为您正确排序:

let a = ["03/12/2019", "17/10/2020", "02/12/2019", "08/12/2019", "13/02/2020"]; // etc.

function ukToUsDate(ukDate) {
  let dateArr = ukDate.split('/');

  return `${dateArr[2]}-${dateArr[1]}-${dateArr[0]}`;
}

for (let i = 0; i < a.length; i++) {
  a[i] = ukToUsDate(a[i]);
}

a.sort((b, a) => {
 if (b > a) {
   return 1;
 }
 if (b < a) {
   return -1;
 }
 return 0;
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用格式为'dd / mm / yyyy-dd / mm / yyyy'的jquery tablesorter对日期进行排序

如何在javascript中对日期数组进行asc排序?格式 "DD/MM/YYYY HH:mm"

如何在数据表中以dd-MMM-yyyy hh:mm tt格式对日期进行排序

如何通过升序对日期进行排序。日期类似于dd / mm / yyyy(31/12/2015)或(dd-MMM-yyyy)格式

使用 .groupBy 对日期列表进行分组,不能处理日期格式“YYYY-mm-dd”,会产生奇怪的输出 [Kotlin]

如何用日期分组对dd / mm / yyyy格式进行排序?

如何按月对日期值为dd-mm-yyyy的选择元素选项进行排序?

YYYY / MM / DD格式-JavaScript日期验证

Javascript / Thymeleaf表按日期/时间排序,格式为dd-MM-yyyy hh:MM:ss

tablesorter按日期期间/日期格式排序dd.mm.yyyy-dd.mm.yyyy

使用Javascript将DD-MM-YYYY转换为YYYY-MM-DD格式

使用JavaScript将日期从dd / mm / yyyy转换为yyyy / mm / dd

使用日期以dd / mm / yyyy格式访问vba sql查询

使用JQuery Validate以dd / mm / yyyy格式验证日期

通过VBA在Excel中使用“ dd / mm / yyyy”日期格式

如何使用 DateTime 创建 dd/mm/yyyy 日期格式

使用管道将日期格式设置为dd / MM / yyyy

按日期对表条目进行排序(dd.mm.yyyy)

如何按照日期时间以降序排列的'DD-MM-YYYY HH:mm:ss'格式对数组进行排序?

我如何按字段存储的字符串以日期格式“ yyyy / MM / dd HH:mm:ss”对数据进行排序

如何使用JavaScript或jQuery解析“ dd / mm / yyyy”或“ dd-mm-yyyy”或“ dd-mmm-yyyy”格式的日期字符串

使用JavaScript将yyyy-MM-ddTHH:mm:ss.fffZ日期格式转换为mmm dd hh:mm

如何使用JavaScript确定用户的语言环境日期格式(格式为dd / mm或mm / dd)?

JavaScript:以mm / dd / yyyy格式分割和合并日期

在JavaScript中将日期格式化为MM / dd / yyyy

将JavaScript日期格式设置为yyyy-mm-dd

Javascript更改日期为(dd / mm / yyyy)格式

在JavaScript中将日期验证为mm / dd / yyyy格式

javascript将日期格式转换为dd / mm / yyyy