Moment.js облегчи свою жизнь в работе с Dates - itgirlschool/wiki GitHub Wiki
Специальная библиотека для javascript Moment.js призвана облегчить жизнь программисту, когда дело касается работы с датами. Библиотека помогает управлять датами в браузере и на бэке (в Node.js)
Как установить библиотеку?
Можно использовать установщик пакетов npm
npm install moment'
Затем импортировать пакет:
import moment from 'moment'
Установить библиотеку можно и с помощью тега скрипта:
<script src="https://unpkg.com/moment" />
Как получить текущую дату и время?
Тут все почти как в родном js, только вместо объекта Date используем ключевое слово moment:
const date = moment()
Любую дату можно проверить
А правильно ли указана дата? Может, там просто набор символов? Для этого в библиотеке moment.js есть специальный метод isValid. По названию догадываемся, что вернет он true/false:
userDate('2021-14-25').isValid() //false
userDate('2021-10-25').isValid() //tru
Можно добавлять и вычитать дни-часы-минуты от дат:
moment('2021-09-10').add(1, 'years') //добавим один год
moment('2021-08-13').subtract(1, 'days') //отнимем 3 дня
Добавлять и вычитать можно дни, месяцы, недели, секунды, миллисекунды, часы, минуты, годы
Получать разницу между датами без вреда для здоровья!
Больше не нужно мучиться, переводя миллисекунды в дни-часы-минуты, сходить с ума от остатков делений, отнимать остатки и т.д. Просто пишем:
let dateB = moment('2011-11-11');
let dateC = moment('2010-10-11');
console.log('Разница в ', dateB.diff(dateC), 'миллисекунд');
console.log('Разница в ', dateB.diff(dateC, 'days'), 'дней');
console.log('Разница в ', dateB.diff(dateC, 'months'), 'месяцев');
Можно сравнивать даты между собой
Для этого в библиотеке moment.js есть несколько методов: isBefore(), isAfter() и isSame(). Например:
console.log(moment('2010-09-20').isAfter('2010-10-19')); // возвращает false
console.log(moment('2010-11-20').isAfter('2010-10-19')); // возвращает true