Какой самый простой способ уменьшить дату в Javascript на 1 день?

StackOverflow https://stackoverflow.com/questions/31931

  •  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')
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top