Делать это без библиотек.
dates.forEach((date) => {
if (date.getDay() == 6) {
console.info('sat', date)
var t = new Date()
console.info('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, но это вайп)
В результате день увеличивается. Однако по какой-то причине он сдвигает дату на март. Я огляделся, и, видимо, так и должно быть, но это не так.
Когда я пытаюсь console.info('sat new', t.setDate(date.getDate() + 1))
(без новой даты()), я получаю отметку времени 1646236273249. Которая этот сайт преобразуется в 16 марта. Не знаю, насколько это полезно.
Надеюсь, я дал всю важную информацию здесь.
var t = new Date()
- ничего не передавая конструктору Date
, мы сделаем это "прямо сейчас".
Я думаю, вам нужно передать повторную дату конструктору Date
:
dates.forEach((date) => {
if (date.getDay() == 6) {
console.info('sat', date)
var t = new Date(date) // this line
console.info('sat new', new Date(t.setDate(date.getDate() + 1)))
}
}
КОРОЛЬ!!!!!!!!!!!
Чтобы увеличить день до заданной даты:
date = new Date(date)
date.setDate(date.getDate() + 1)
console.info(date)
Черт, должно быть, я упустил это из виду, когда смотрел примеры. Благодарю вас <3