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

时间:2018-09-25 13:47:05

标签: javascript arrays angular typescript 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)是“对象”

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

是否可以应用date-fns的max函数?

2 个答案:

答案 0 :(得分:2)

我可以使用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));

答案 1 :(得分:0)

将每个对象转换为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]
)