Самый простой способ сделать это - обновить объект Date
, используя setDate
. Поскольку комментарии к этому ответу указывают, что это официально не является частью спецификации, но поддерживается во всех основных браузерах.
Вам следует НИКОГДА обновить объект Date
, отличный от того, который вы сделали при первоначальном вызове getDate
.
Пример реализации:
var incrementDate = function (date, amount) {
var tmpDate = new Date(date);
tmpDate.setDate(tmpDate.getDate() + amount)
return tmpDate;
};
Если вы пытаетесь увеличить дату, используйте эту функцию. Он будет принимать как положительные, так и отрицательные значения. Это также гарантирует, что используемые объекты даты не будут изменены. Это должно предотвратить любую ошибку, которая может возникнуть, если вы не ожидаете, что обновление изменит значение объекта.
Неправильное использование:
var startDate = new Date('2013-11-01T11:00:00');
var a = new Date();
a.setDate(startDate.getDate() + 14)
Это обновит значение «date» для startDate
с 14 днями на основе значения a
. Поскольку значение a
не совпадает с ранее определенным startDate
, возможно получить неправильное значение.