Какой самый простой способ уменьшить дату в Javascript на 1 день?
-
09-06-2019 - |
Вопрос
Мне нужно уменьшить дату Javascript на 1 день, чтобы она корректно откатывалась по месяцам / годам.То есть, если у меня есть дата "Сегодня", я хочу получить дату "Вчера".
Кажется, что при этом всегда требуется больше кода, чем необходимо, поэтому мне интересно, есть ли какой-нибудь более простой способ.
Какой самый простой способ сделать это?
[Править:Просто чтобы избежать путаницы в приведенном ниже ответе, это JavaScript вопрос, не относящийся к Java.]
Решение
var d = new Date();
d.setDate(d.getDate() - 1);
console.log(d);
Другие советы
var today = new Date();
var yesterday = new Date().setDate(today.getDate() -1);
day.setDate(day.getDate() -1); //will be wrong
это приведет к возврату в неправильный день.в соответствии с UTC -03:00 проверьте наличие
var d = new Date(2014,9,19);
d.setDate(d.getDate()-1);// will return Oct 17
Лучшее использование:
var n = day.getTime();
n -= 86400000;
day = new Date(n); //works fine for everything
getDate()-1
должно сработать
Краткий пример:
var day = new Date( "January 1 2008" );
day.setDate(day.getDate() -1);
alert(day);
origDate = new Date();
decrementedDate = new Date(origDate.getTime() - (86400 * 1000));
console.log(decrementedDate);
setDate(dayValue)
dayValue
является целым числом от 1 до 31, представляющим день месяца.
От https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/setDate
Поведение, решающее вашу проблему (и мою), похоже, выходит за рамки спецификации.
Что, по-видимому, необходимо, так это AddDate(), addMonth(), addYear() ...функции.
Работа с датами в JS может стать головной болью.Итак, самый простой способ - использовать moment.js для любых операций с датой.
Чтобы вычесть один день:
const date = moment().subtract(1, 'day')