Я думаю, проблема в том, как вы устанавливаете дату в поле dDate
. new Date() + 1
не добавит день к дате (он может добавить миллисекунду или добавить «1» к строке даты).
То, что вы хотите сделать, это построить дату из ее части:
var date = new Date(); // todays date
date.setDate(date.getDate() + 1);
Затем установите его:
defaultDate: date,
... etc, etc
Причина, по которой ваш код не работает, заключается в том, что даты в javascript технически являются целым числом за кулисами. Целое число представляет миллисекунды (с 01.01.1970). Так что new Date() + 1
просто добавляет миллисекунду к текущей дате и не добавляет целый день.
Вы можете добавить день, рассчитав количество миллисекунд в дне и добавив это число. Примерно так может работать:
defaultDate: new Date(new Date().getTime() + (1000 * 60 * 60 * 24))
Это работает, потому что getTime()
получает миллисекунды с 01.01.1970, затем мы добавляем день в миллисекундах и создаем новую дату из этого целого числа.
EDIT
В своем комментарии вы говорите, что хотите добавить день к dDate
в строке dDate.setDate(s_date)
. Должен ли s_date
оставаться на той же дате? Если нет, вы можете добавить день к s_date
, используя мой первый метод. Если вы не можете изменить s_date
, вам нужно создать новый объект даты и добавить его.
Должно работать что-то вроде ниже (s_date
сохранит свое первоначальное значение).
if (s_date > e_date) {
var newDate = new Date(s_date.getTime());
newDate.setDate(newDate.getDate() + 1);
dDate.setDate(newDate);
}