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

React标准日期格式是什么?按YYYY-MM-DD HH:MM:SS日期排序失效如何解决

问题原因

  • 日期格式兼容性问题:你使用的YYYY-MM-DD HH:MM:SS格式不属于ECMAScript标准强制要求支持的日期解析格式,部分浏览器解析这类带空格的日期字符串时会返回Invalid Date,两个非法日期相减结果为0,排序函数会判定所有元素优先级相同,最终保留原数组顺序。
  • Array.sort()是原地排序方法,会直接修改原数组,你赋值得到的sorted_meetings和原notifications是同一个数组的引用,加上浏览器控制台打印引用类型时的懒求值特性,就会出现两次打印结果完全一致的情况。

解决方案

不需要完全修改原有日期格式,只需要在解析前做简单的兼容处理即可,同时建议拷贝数组后再排序,避免污染原数据,示例代码如下:

// 先拷贝原数组,避免原地修改
const sorted_meetings = [...notifications].sort((a, b) => {
  // 把日期字符串中的空格替换为T,转为标准RFC3339格式,兼容所有浏览器解析
  const timeA = new Date(a.timestamp.replace(' ', 'T')).getTime()
  const timeB = new Date(b.timestamp.replace(' ', 'T')).getTime()
  // 倒序排序返回timeB - timeA,正序排序返回timeA - timeB
  return timeB - timeA
})
// 打印时转成JSON可避免懒求值干扰,直接确认排序结果
console.log(JSON.stringify(sorted_meetings, null, 2))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:57:03