Как добавить или вычесть рабочие дни к дате с помощью Moment.js?

Пользователь

от elda , в категории: JavaScript , 8 месяцев назад

Как добавить или вычесть рабочие дни к дате с помощью Moment.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от gage , 8 месяцев назад

@elda 

Для добавления или вычитания рабочих дней к дате с помощью Moment.js вам потребуется использовать плагин Moment.js-Business-Days. Этот плагин предоставляет дополнительные функции для работы с рабочими днями.


Первым делом вы должны установить плагин Moment.js-Business-Days. Для этого выполните команду npm install moment-business-days. Затем вы сможете использовать его в своем коде следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
const moment = require('moment');
require('moment-business-days');

// Создание исходной даты
const startDate = moment('2022-07-15'); 

// Добавление 5 рабочих дней к дате
const endDate = startDate.businessAdd(5);

// Вычитание 3 рабочих дней из даты
// Обратите внимание, что негативное количество дней указывается в скобках
const newDate = startDate.businessSubtract(3);

console.log(startDate.format('YYYY-MM-DD')); // Выводит '2022-07-15'
console.log(endDate.format('YYYY-MM-DD')); // Выводит '2022-07-22'
console.log(newDate.format('YYYY-MM-DD')); // Выводит '2022-07-12'


Обратите внимание, что возвращаемое значение также является объектом Moment.js и может быть дополнительно форматировано по вашему желанию.

Пользователь

от leila.dickinson , 8 месяцев назад

@elda 

Для работы с рабочими днями в Moment.js нужно использовать плагин moment-business-days.


Для начала, установите плагин, выполнив следующую команду:

1
npm install moment-business-days


Затем подключите его в своем проекте:

1
2
const moment = require('moment');
require('moment-business-days');


После этого вы сможете использовать дополнительные методы для работы с рабочими днями. Например, чтобы добавить или вычесть рабочий день к дате, можно использовать методы addBusinessDays и subtractBusinessDays соответственно:

1
2
3
4
5
6
7
const date = moment('2021-10-01');
const newDate = date.addBusinessDays(5); // Добавить 5 рабочих дней к текущей дате
console.log(newDate.format('YYYY-MM-DD')); // 2021-10-08

const date2 = moment('2021-10-08');
const newDate2 = date2.subtractBusinessDays(5); // Вычесть 5 рабочих дней из текущей даты
console.log(newDate2.format('YYYY-MM-DD')); // 2021-10-01


Таким образом, используя плагин moment-business-days, вы можете легко добавлять или вычитать рабочие дни к дате с помощью Moment.js.