【问题标题】:how to compare date and time in javascript using moment如何使用时刻比较javascript中的日期和时间
【发布时间】:2021-11-21 09:39:17
【问题描述】:

我正在尝试将更新的日期和时间与当前日期和时间进行比较。在这里,我在里面得到一组对象,我在 key 处更新了一个。我需要找出哪个对象接近当前日期和时间,并更新该对象内的另一个键。

     for(var i =0;i<data.length;i++){ 
        if(data[i].updated_at > data[i+1].updated_at ){
          data.is_latest="true"
              }
       }
 // below is my data
  
                              [
                            {
                                "is_latest": "",
                                "created_at": "2021-09-21T21:24:05.000Z",
                                "updated_at": "2021-09-21T17:53:29.000Z"
                            },
                            {
                                "is_latest": "",
                                "created_at": "2021-09-29T21:24:05.000Z",
                                "updated_at": "2021-09-29T17:53:29.000Z"
                            }
                        ]

  // in the above i am getting data here how to find updated_at nearer to current date and time using moment.js
      
                                 [
                            {
                                "is_latest": "",
                                "created_at": "2021-09-21T21:24:05.000Z",
                                "updated_at": "2021-09-21T17:53:29.000Z"
                            },
                            {
                                "is_latest": true,
                                "created_at": "2021-09-29T21:24:05.000Z",
                                "updated_at": "2021-09-29T17:53:29.000Z"
                            }
                        ]

如何使用地图功能解决此问题

【问题讨论】:

  • I am trying...你是吗?然后请展示您的尝试,并解释您卡在哪里/遇到了什么错误。目前还不清楚问题是什么。您的问题具体是如何将两个日期与 momentJS 进行比较,或者关于通过数组处理的算法,还是什么?请更具体。 Stackoverflow 不是免费的 write-my-code 服务,但我们会帮助你的尝试实现你需要的东西。另请参阅How to Ask 以及如何为您的问题创建minimal reproducible example。谢谢。
  • 请添加您正在尝试的代码。
  • 我是新手..我已经更新了请检查

标签: javascript node.js arrays reactjs


【解决方案1】:

你可以试试:

let today = Date.now();
let latest_index = 0, latest_diff = today - (new Date(data[0].updated_at)).getTime();

for(let i=1;i<data.length; i++){ 
  let updated_date = (new Date(data[i].updated_at)).getTime();

  if (today - updated_date < latest_diff){
    latest_index = i;
    latest_diff = today - updated_date;
  }
     
}

注意:

(new Date()).getTime;
// This will return you the number of milliseconds elapsed from January 1, 1970 
// if your date is less than that date, the value will be negative

【讨论】:

    猜你喜欢
    • 2020-12-10
    • 1970-01-01
    • 2014-03-20
    • 2014-05-02
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多