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