JS 日期递增

JS Date incrementation

在没有库的情况下执行此操作。

dates.forEach((date) => {
  if(date.getDay() == 6) {
    console.log('sat', date)
    var t = new Date()
    console.log('sat new', new Date(t.setDate(date.getDate() + 1)))
  } else ...
}

给出这个输出

sat 
Date Sat Jan 01 2022 00:00:00 GMT+0200 (Eastern European Standard Time)
sat new 
Date Sat Apr 02 2022 19:10:27 GMT+0300 (Eastern European Summer Time)

此代码的重点是查看日期是否为星期六。如果是这样,将它增加到成为一个工作日(我知道它说 +1 但它是一个 wip)

结果是日期增加了。但是由于某种原因,它将日期移到了三月。我环顾四周,显然这是你应该做的,但它没有这样做。

当我尝试 console.log('sat new', t.setDate(date.getDate() + 1))(没有 new Date())时,我得到时间戳 1646236273249。this site 转换为 3 月 16 日。不知道这个有什么用

我希望我在这里提供了所有重要信息。

var t = new Date() - 不向 Date 构造函数传递任何内容将使它“立即”。 我认为您需要将迭代日期传递给 Date 构造函数:

dates.forEach((date) => {
  if(date.getDay() == 6) {
    console.log('sat', date)
    var t = new Date(date) // this line
    console.log('sat new', new Date(t.setDate(date.getDate() + 1)))
  }
}

为了给定日期增加一天:

date = new Date(date)
date.setDate(date.getDate() + 1)
console.log(date)