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

如何按特定格式的日期对JavaScript对象数组进行排序

问题根源

你当前的排序逻辑是直接对日期字符串做字典序比较,没有将字符串解析为可正确识别年、月、日优先级的日期类型,因此无法得到正确的排序结果。

解决方案

在排序比较前先将两个待比较的日期字段转换为标准Date对象,再通过时间戳差值完成比较即可:

const bills = [
  {
    name: "ghaith",
    type: "transport",
    date: "12 may 21",
  }, 
  {
    name: "Alex",
    type: "Restaurants",
    date: "15 oct 20",
  }
];

// 按日期降序排序(最新日期排在最前)
bills.sort((a, b) => {
  const dateA = new Date(a.date);
  const dateB = new Date(b.date);
  return dateB - dateA;
})

补充说明

  • 若需要升序排序(最早日期排在最前),只需将return语句改为return dateA - dateB即可。
  • 你使用的日 月份缩写 年格式的日期字符串可被原生Date构造函数正常解析,无需额外做格式适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:15:03