Руководство о том, как легко вычесть 30 дней из текущей даты в JavaScript.

1. Методы даты setDate() и getDate()

Чтобы вычесть 30 дней из текущей даты в JavaScript:

  1. Используйте конструктор Date() для создания нового объекта Date с текущей датой.
  2. Вызовите метод getDate() для этого объекта, чтобы получить дни.
  3. Вычтите 30 из возвращаемого значения getDate().
  4. Передайте результат вычитания методу setDate().
// Current date: September 29, 2022
const date = new Date();
date.setDate(date.getDate() - 30);
// New date: August 30, 2022
console.log(date);

Метод Date getDate() возвращает число от 1 до 31, которое представляет день месяца конкретного Date.

Метод Date setDate() изменяет день месяца объекта Date на число, переданное в качестве аргумента.

Если указанные вами дни изменяют месяц или год Date, setDate() автоматически обновляет информацию Date, чтобы отразить это.

// April 25, 2022
const date = new Date('2022-04-25T00:00:00.000Z');
date.setDate(40);
// May 10, 2022
console.log(date); // 2022-05-10T00:00:00.000Z
console.log(date.getDate()); // 10

В апреле всего 30 дней, поэтому передача 40 в setDate() здесь увеличивает месяц на единицу и устанавливает день месяца на 10.

2. функция date-fns subDays()

В качестве альтернативы мы можем использовать функцию subDays() из пакета NPM date-fns, чтобы вычесть 30 дней из текущей даты. subDays() принимает объект Date и количество дней для вычитания в качестве аргументов. Он возвращает новый объект Date с вычтенными днями.

import { subDays } from 'date-fns';
// Current date: September 29, 2022
const date = new Date();
const newDate = subDays(date, 30);
// New date: August 30, 2022
console.log(newDate);

Обратите внимание, что subDays() возвращает новый объект Date без изменения переданного ему объекта.

Первоначально опубликовано на codingbeautydev.com

Все сумасшедшие вещи, которые делает JavaScript

Увлекательное руководство по тонким предостережениям и менее известным частям JavaScript.

Зарегистрируйтесь и немедленно получите бесплатную копию.