Узнайте, как легко добавлять минуты к объекту Date в JavaScript.

1. Методы Date setMinutes() и getMinutes()

Чтобы добавить минуты к Date в JavaScript, вызовите метод getMinutes() для Date, чтобы получить минуты, затем вызовите метод setMinutes() для Date, передав сумму Date минут и минут для добавления.

function addMinutes(date, minutes) {
  date.setMinutes(date.getMinutes() + minutes);
  return date;
}
const date = new Date('2022-05-15T00:00:00.000Z');
const newDate = addMinutes(date, 10);
// 2022-05-15T00:10:00.000Z
console.log(newDate);

Наша функция addMinutes() принимает в качестве аргументов Date и количество минут, которое нужно добавить, и возвращает то же самое Date с вновь добавленными минутами.

Метод Date getMinutes() возвращает число от 0 до 59, которое представляет минуты Date.

Метод Date setMinutes() принимает число, представляющее минуты, и устанавливает минуты Date в это число.

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

const date = new Date('2022-05-15T00:00:00.000Z');
date.setMinutes(date.getMinutes() + 150);
console.log(date);

В этом примере передача 150 в setMinutes() увеличивает Date часов на 2 (120 минут) и устанавливает минуты на 30.

Как избежать побочных эффектов

Метод setMinutes() изменяет объект Date, для которого он вызывается. Это вносит побочный эффект в нашу функцию addMinutes(). Чтобы избежать изменения переданного Date и создать чистую функцию, сделайте копию Date и вызовите setMinutes() на этой копии вместо оригинала:

function addMinutes(date, minutes) {
  const dateCopy = new Date(date);
  dateCopy.setMinutes(date.getMinutes() + minutes);
  return dateCopy;
}
const date = new Date('2022-05-15T00:00:00.000Z');
const newDate = addMinutes(date, 10);
console.log(newDate); // 2022-05-15T00:10:00.000Z
// Original not modified
console.log(date); // 2022-05-15T00:00:00.000Z

Кончик

Функции, которые не изменяют внешнее состояние (т. е. чистые функции), как правило, более предсказуемы и о них легче рассуждать. Это делает хорошей практикой ограничение количества побочных эффектов в ваших программах.

2. date-fns addMinutes()

Кроме того, вы можете использовать чистую функцию addMinutes() из пакета date-fns NPM, чтобы быстро добавить минуты к Date.

import { addMinutes } from 'date-fns';
const date = new Date('2022-05-15T00:00:00.000Z');
const newDate = addMinutes(date, 10);
console.log(newDate); // 2022-05-15T00:10:00.000Z
// Original not modified.
console.log(date); // 2022-05-15T00:00:00.000Z

Обновлено на: codingbeautydev.com

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

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

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