即使满足条件,Array.some()始终为false

时间:2020-06-29 14:29:09

标签: javascript arrays

我正在尝试编写一个函数,该函数获取代表日期的字符串数组,然后检查给定日期是否在数组中。但是,即使满足条件,我也总是得到false

这是最少的代码:

let dates = ['2020-06-29', '2020-07-13'];
dates = dates.map(some_day => new Date(some_day));
const someDay = new Date(2020, 5, 29);
console.log(dates.some(some_day => some_day.getTime() === someDay.getTime()));

编辑1 :(仍无法正常工作,但我正在改进代码)

let dates = ['2020-06-29', '2020-07-13'];
dates = dates.map(some_day => new Date(some_day));
let someDay = new Date(2020, 5, 29);
const date_string = `${someDay.getFullYear()}-${someDay.getMonth() + 1}-${someDay.getDate()}`;
someDay = new Date(date_string);
console.log(dates.some(some_day => some_day.getTime() === someDay.getTime()));

1 个答案:

答案 0 :(得分:0)

由于时区不同,请操纵timezoneoffset或:

dates.some(some_day => 
  (
    (some_day.getFullYear() === someDay.getFullYear()) &&
    (some_day.getMonth() === someDay.getMonth()) &&
    (some_day.getDate() === someDay.getDate())
  )
)
相关问题