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

Мне нужно уменьшить дату Javascript на 1 день, чтобы она вернулась через месяцы/годы правильно. То есть, если у меня есть дата "Сегодня", я хочу получить дату "Вчера".

Кажется, что когда я делаю это, мне кажется, что требуется больше кода, чем необходимо, поэтому я задаюсь вопросом, есть ли простой способ.

Какой самый простой способ сделать это?

[Изменить: просто, чтобы избежать путаницы в ответе ниже, это вопрос JavaScript, а не один Java.]

Ответы

Ответ 1

var d = new Date();
d.setDate(d.getDate() - 1);

console.log(d);

Ответ 2

var today = new Date();
var yesterday = new Date().setDate(today.getDate() -1);

Ответ 3

getDate()-1 должен сделать трюк

Быстрый пример:

var day = new Date( "January 1 2008" );
day.setDate(day.getDate() -1);
alert(day);

Ответ 4

origDate = new Date();
decrementedDate = new Date( sDate.getTime() - ( 86400 * 1000 ));

console.log(decrementedDate);

Ответ 5

 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

Ответ 6

setDate(dayValue)

dayValue - целое число от 1 до 31, представляющее день месяца.

from https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/setDate

Поведение, решающее вашу проблему (и мое), кажется, выходит за пределы спецификации.

Кажется, что нужны функции addDate(), addMonth(), addYear()...