Как проще всего уменьшить дату на один день в JavaScript?

Ребята, помогите пожалуйста! Мне нужно в JavaScript уменьшить дату на один день. Причем так, чтобы правильно переходить через месяцы и годы. То есть, если у меня дата “сегодня”, я хочу получить “вчера”.

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

Буду благодарен за любые идеи! И да, речь именно о JavaScript, не о Java.

Можно использовать метод getTime() и вычесть из него количество миллисекунд в сутках. Примерно так:

const вчера = new Date(new Date().getTime() - 246060*1000);

Просто и работает. Правда, нужно быть осторожным с переходом на летнее/зимнее время. Но для большинства случаев такой подход вполне подойдет.

Самый простой способ - использовать Date.prototype.setDate() вместе с getDate(). Вот рабочий пример:

const date = new Date();
date.setDate(date.getDate() - 1);

Это уменьшит дату на 1 день, автоматически обрабатывая переходы через месяцы/годы. Никаких дополнительных проверок не нужно. JS сам корректно обработает все эти случаи.

Этот метод намного лучше, чем вручную считать дни в месяцах и високосные годы.

для этого есть простой способ - используй метод setDate(). он очень удобный, сам учитывает переходы между месяцами и годами. вот так это будет выглядеть:

const date = new Date(); // берем текущую дату
date.setDate(date.getDate() - 1); // уменьшаем на 1 день

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