javascript比较或匹配两个具有相同格式的日期

问题描述 投票:0回答:1

我在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]

预期输出

Array3:[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个回答
0
投票

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

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))

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

© www.soinside.com 2019 - 2024. All rights reserved.