微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Luxon moment js 检查数组中的任何日期/时间是否大于当前本地时间

如何解决使用 Luxon moment js 检查数组中的任何日期/时间是否大于当前本地时间

我目前根据一些 json 数据取回 2 组时间。我希望能够比较当前本地时间并检查它是否大于或小于我的 json 方案中的任何日期。

const result = [
  {
    "carId": "13122656-169f-45fa-be47-26c9d23dcb7b","carInstances": [
      {
        "carInstanceId": "47209558-f9e1-4f81-a600-5da6ce238a6e","carTime": "2020-09-23T21:45:00.000+0000","state": "COMPLETE",}
    ],"isPaused": false,},{
    "carId": "13122656-169f-45fa-be47-26c9d23dcb7b",];

const timeAgo = (date) => {
    const Now = DateTime.local();
    const past = DateTime.fromISO(date);
    const diff = past.diff(Now,'minutes');
    return Math.floor(diff.minutes);
}

const listCarTime = (res) => {
  return res.reduce((acc,car) => {
    acc.push(...car.carInstances.map((instance) => instance.carTime));
    return acc;  
  },[]);
}

console.log('result',timeAgo(results)); <----Returns NAN

解决方法

您正在将 result(一个数组)传递给 timeAgo(date) 函数,该函数期望 iso 格式日期,然后(作为日期参数)尝试解析它无法工作的内容。当您传递正确的参数时,您的函数可以正常工作。您可以尝试使用正确的 iso 日期。

timeAgo("2020-09-23T21:45:00.000+0000") // return 255017.36843333332
const diffrences = result.map( res => res.carInstances.map( ins => timeAgo(ins.carTime) )).flat()

console.log("result",diffrences )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。