【问题标题】:Find max date from a string array of dates using max function of date-fns使用 date-fns 的 max 函数从日期字符串数组中查找最大日期
【发布时间】:2019-03-01 04:08:11
【问题描述】:

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

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 功能?

【问题讨论】:

标签: javascript arrays angular typescript date-fns


【解决方案1】:

我可以提供一种解决方案,使用 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));

【讨论】:

  • 有用,但在不使用 momentjs lib 的情况下搜索解决方案。谢谢。
  • 使用相同的方法,但只是转换时间戳中的日期并在排序函数中比较两个日期
  • 刚刚编辑了答案以包含一个潜在的解决方案,而无需任何时刻
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2021-10-28
    • 2018-09-18
    • 2021-03-28
    • 2020-05-10
    • 2021-11-14
    相关资源
    最近更新 更多