При добавление дня к текущей дате некорректно работает если это последний день месяца
Столкнулся с проблемой что при добавлении блока я создаю календать, и должен в него записать завтрашнею дату, проблема что если сегодня 31 число и 7 месяц, то при добалнению +1 день должно посчитать 01.08, но сейчас после добавления выдаёт 32.07. Буду признателен за помощь, если подскажите как правильно сделать.
addDayOff() {
let nowDate = new Date();
let date = nowDate.getDate() + 1;
let month = nowDate.getMonth() + 1;
let year = nowDate.getFullYear();
if (date <= 9) date = `0${date}`;
if (month <= 9) month = `0${month}`;
this.calendar.unshift({
startDate: `${year}-${month}-${date}`,
endDate: `${year}-${month}-${date}`,
onGoingStartDate: `${month}-${date}`,
onGoingEndDate: `${month}-${date}`,
startTime: this.ruleData.startTime,
endTime: this.ruleData.endTime,
});
},
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Попробуйте так
addDayOff() {
let nowDate = new Date(Date.now() + 24*60*60*1000);
let date = nowDate.getDate() ;
let month = nowDate.getMonth() + 1;
let year = nowDate.getFullYear();
if (date <= 9) date = `0${date}`;
if (month <= 9) month = `0${month}`;
this.calendar.unshift({
startDate: `${year}-${month}-${date}`,
endDate: `${year}-${month}-${date}`,
onGoingStartDate: `${month}-${date}`,
onGoingEndDate: `${month}-${date}`,
startTime: this.ruleData.startTime,
endTime: this.ruleData.endTime,
});
},
Значение, возвращённое методом getDate(), является целым числом от 1 до 31.
Метод getMonth() возвращает месяц указанной даты по местному времени, нумерация месяцев начинается с нуля для первого месяца в году, то есть от 0 до 11
Метод getYear() возвращает год минус 1900
Вам нужно быть аккуратным с месяцами