【问题标题】:javascript compare or match two dates with same formatjavascript比较或匹配两个具有相同格式的日期
【发布时间】:2020-05-07 09:10:54
【问题描述】:

我遇到了 Javascript 日期问题。我想比较或匹配两个日期并显示它的另一个数组。

我的代码:

var ts_hms = new Date().toISOString().
  replace(/T/, ' ').      // replace T with a space
  replace(/\..+/, '');     // delete the dot and everything after
  console.log(ts_hms);     //format 2020-05-07 08:04:26

控制台日志数据(日期格式)

Array1:
[2020-05-07 02:15:00]

Array2:
[2020-05-07 08:04:26, 2020-05-07 09:04:26, 2020-05-07 10:04:26]

预期输出

数组3:[same data are shows here]

记住:日期值是变化的(不是固定值)

Array1:
[2020-05-07 04:15:00]

Array2:
[2020-05-07 06:04:26, 2020-05-07 07:14:26, 2020-05-07 08:24:26]

如何匹配两个日期?

有人帮帮我吗?

【问题讨论】:

    标签: javascript arrays date datetime date-parsing


    【解决方案1】:

    这是比较日期数组的方法。

    let array1 = [new Date("2020-05-07 02:15:00")]
    
    let array2 = [new Date("2020-05-07 08:04:26"), new Date("2020-05-07 09:04:26"), new Date("2020-05-07 10:04:26")]
    
    let array3 = [new Date("2020-05-07 08:04:26"), new Date("2020-05-07 09:04:26"), new Date("2020-05-07 10:04:27")]
    
    const areArraysEqual = (array1, array2) => {
      // for only date part comparison, strip time part
      array1 = [...array1.map(date => new Date(date.toDateString()))]
      array2 = [...array2.map(date => new Date(date.toDateString()))]
      
    
      if(array1.length !== array2.length) {
        return false;
      }
      
      for(let i = 0; i < array1.length ; i++) {
    
        if(array1[i].valueOf() !== array2[i].valueOf()) {
          return false;
        }
      }
      
      return true;
    }
    
    console.log(array1)
    console.log(array2)
    console.log(areArraysEqual(array1, array2))
    console.log(areArraysEqual(array2, array3))

    这过于简单化了,就好像您只想根据日期部分比较日期是行不通的。

    【讨论】:

    • 谢谢,但是日期值可以更改它不是固定值@józef
    • 它仍然应该工作。我提供了示例数据,只是为了让 sn-p 工作。
    • 如果日期值随时间变化。所以这段代码会正常运行吗? @józef
    • 你明白我的问题了吗? @józef
    • 不,如果时间部分发生变化并且日期部分保持不变,则数组将不再相等。更新了答案。如果您只想按日期部分比较日期,则必须从数组中删除时间值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 2021-06-21
    相关资源
    最近更新 更多