使用 date-fns 的 max 函数从日期字符串数组中查找最大日期

Find max date from a string array of dates using max function of date-fns

日期字符串数组由后端数据对象构造如下:

const dates: string[] = this.data.map((item:any) => item.date.jsdate);

结果是

dates = [
    Thu Jan 12 2015 00:00:00 GMT+0530 (India Time), 
    Tue Feb 25 2015 00:00:00 GMT+0530 (India Time), 
    Sun Jan 28 2016 00:00:00 GMT+0530 (India Time)
]

typeof(dates) 是 "object"

如何在jsdates数组中找到获取最新的日期?

是否可以应用date-fns的max功能?

我可以提供一种解决方案,使用 momentjs (https://momentjs.com/) 库。

您可以使用以下方式对日期进行排序:

dates = dates.sort((a,b) => moment(a).diff(moment(b));

然后,如果您想要最新日期,您可以从该数组中取出最后一个元素:

return dates[dates.length-1];

您应该也可以立即执行此操作:

dates = dates.sort((a,b) => new Date(b) - new Date(a));

将每个转换为 Date 对象并使用 getTime() 函数进行比较。

var dates = [
    'Thu Jan 12 2015 00:00:00 GMT+0530 (India Time)', 
    'Tue Feb 25 2015 00:00:00 GMT+0530 (India Time)', 
    'Sun Jan 28 2016 00:00:00 GMT+0530 (India Time)'
]

console.log(
  dates.sort((a,b)=>new Date(b).getTime() - new Date(a).getTime())[0]
)