You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中new Date解析特定格式日期返回null 数组日期排序失效如何解决

问题根因

你使用的DD-MM-YYYY HH:MM:SS日期格式不属于JavaScript Date 构造器支持的标准输入格式,直接传入会得到Invalid Date,数值运算时会转为NaN,导致排序逻辑失效。

解决方法

自定义日期解析函数处理你的格式,再参与排序运算,示例代码如下:

// 适配DD-MM-YYYY HH:MM:SS格式的日期解析函数
function parseCustomDate(dateStr) {
  const [datePart, timePart] = dateStr.split(' ');
  const [day, month, year] = datePart.split('-');
  const [hour, minute, second] = timePart.split(':');
  // 注:JS中Date的月份参数从0开始计数,因此要减1
  return new Date(year, month - 1, day, hour, minute, second);
}

var array = [{id: 1, date: '16-04-2021 14:24:14'}, {id: 2, date: '16-04-2021 14:24:15'}];

// 若不需要保留原数组,可直接用array.sort(...)
const sortedArray = array.slice().sort(function(a,b){
  return parseCustomDate(b.date) - parseCustomDate(a.date);
});
注意事项
  • 原生Array.sort()是原地排序方法,会直接修改原数组,上述代码用slice()做了浅拷贝,避免改动原数组,不需要保留原数组可去掉该调用。
  • 自行拆分日期字符串的方案兼容性最高,不会出现不同浏览器对非标准日期格式解析结果不一致的问题。

内容的提问来源于stack exchange,提问作者Mads Hjorth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 17:51:03