Учебник Moment.js

Moment.js - отличный помощник в управлении датами в JavaScript.

Moment.js- отличная библиотека JavaScript, которая помогает управлять датами в браузере и в Node.js.

Эта статья призвана объяснить основы и наиболее распространенные способы использования этой библиотеки.

Установка

Вы можете включить его прямо на свою страницу, используя тег скрипта с unpkg.com:

<script src="https://unpkg.com/moment" />

или используяnpm:

npm install moment

Если вы устанавливаете с помощью npm, вам необходимо импортировать пакет (используяМодули ES):

import moment from 'moment'

или потребовать его (используяCommonJS):

const moment = require('moment')

Получить текущую дату и время

const date = moment()

Разобрать дату

Объект момента может быть инициализирован датой, передав ему строку:

const date = moment(string)

он принимает любую строку, анализируемую в соответствии (по порядку):

ISO 8601 определенно самый удобный. Вот ссылка на формат:

Формат Смысл Пример
ГГГГ 4-значный год 2018
YY 2-значный год 18
M 2-значный номер месяца без ведущего 0 7
ММ 2-значный номер месяца 07
М-м-м 3-буквенное название месяца Июл
ММММ Полное название месяца июль
дддд Полное название дня воскресенье
gggg 4-значный год недели 2018
gg 2-значный год недели 18
ш Неделя года без нуля в начале 18
ww Неделя года с нулем в начале 18
е Day of the week, starts at 0 4
D 2-значный номер дня без ведущего 0 9
DD 2-значный номер дня 09
Делать Номер дня с порядковым номером 9-е
Т Указывает начало временной части
HH 2-значные часы (24-часовое время) от 0 до 23 22
ЧАС 2-значные часы (24-часовое время) от 0 до 23 без 0 в начале 22
кк 2-значные часы (24-часовое время) от 1 до 24 23
k 2-значные часы (24-часовое время) от 1 до 24 без 0 в начале 23
а / а amили жеpm вечера
чч 2-значные часы (12-часовое время) 11
мм 2-значные минуты 22
SS 2-значные секунды 40
s 2-значные секунды без нуля в начале 40
S 1-значные миллисекунды 1
SS 2-значные миллисекунды 12
SSS 3-значные миллисекунды 123
Z Часовой пояс +02: 00
Икс Отметка времени UNIX в миллисекундах 1410432140575

Назначить дату

Форматировать дату

Если вы хотите вывести содержимое простого объекта JavaScript Date, у вас есть несколько вариантов для определения форматирования. Все, что вы можете сделать, это использовать встроенные методы и составить дату, как вы хотите, используя их.

Moment предлагает удобный способ отформатировать дату в соответствии с вашими потребностями, используяformat()метод:

date.format(string)

Строковый формат принимает те же форматы, которые я описал в разделе «Анализ даты» выше.

Пример:

moment().format("YYYY Do MM")

Moment предоставляет некоторые константы, которые вы можете использовать вместо написания собственного формата:

Постоянный Формат Пример
moment.HTML5_FMT.DATETIME_LOCAL ГГГГ-ММ-ДДТЧЧ: мм 2017-12-14T16:34
moment.HTML5_FMT.DATETIME_LOCAL_SECONDS ГГГГ-ММ-ДДТЧЧ: мм: сс 2017-12-14T16:34:10
moment.HTML5_FMT.DATETIME_LOCAL_MS ГГГГ-ММ-ДДТЧЧ: мм: сс.ССС 2017-12-14T16:34:10.234
moment.HTML5_FMT.DATE ГГГГ-ММ-ДД 2017-12-14
moment.HTML5_FMT.TIME ЧЧ: мм 16:34
moment.HTML5_FMT.TIME_SECONDS ЧЧ: мм: сс 16:34:10
moment.HTML5_FMT.TIME_MS ЧЧ: мм: сс.ССС 16: 34: 10.234
moment.HTML5_FMT.WEEK ГГГГ- [W] WW 2017-W50
moment.HTML5_FMT.MONTH ГГГГ-ММ 2017-12

Подтверждение даты

Любую дату можно проверить на достоверность с помощьюisValid()метод:

moment('2018-13-23').isValid() //false
moment('2018-11-23').isValid() //true

Время назад, время до даты

ИспользоватьfromNow(). Строки локализованы:

moment('2016-11-23').fromNow() //2 years ago
moment('2018-05-23').fromNow() //a month ago
moment('2018-11-23').fromNow() //in 5 months

если вы пройдетеtrueto fromNow () он просто показывает разницу, без привязки к будущему / прошлому.

moment('2016-11-23').fromNow(true) //2 years
moment('2018-05-23').fromNow(true) //a month
moment('2018-11-23').fromNow(true) //5 months

Манипулировать свиданием

Вы можете добавить или вычесть любое количество времени к дате:

moment('2016-11-23').add(1, 'years')
moment('2016-11-23').subtract(1, 'years')

Вы можете использовать эти значения:

  • years
  • quarters
  • months
  • weeks
  • days
  • hours
  • minutes
  • seconds
  • milliseconds

Скачать мою бесплатнуюРуководство для начинающих по JavaScript


Больше руководств по js: