我在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]
我该如何匹配两个日期?
有人帮我吗?
这里是比较日期数组的方法。
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))
这过于简单了,好像您只想根据日期部分比较日期是行不通的。