Одна из самых распространенных задач в программировании - это работа с датой и временем. То, как даты обычно хранятся в базах данных или предоставляются сторонними API, сильно отличается от того, как вы хотели бы отображать их для своих пользователей. Более того, если вам нужно выполнить вычисления, такие как планирование дат в будущем (например, отправить это электронное письмо через две недели) или отобразить относительное время (например, это произошло 2 минуты назад), все начинает усложняться. И давайте разберемся с этим пораньше: сказать, что API JavaScript Date необычный, значит проявить к нему доброту. Здесь на помощь приходит Moment.js!

Вы можете добавить Moment.js в свой проект в зависимости от того, где вы запускаете свой код:

  • Если вы запускаете свой код с помощью Node.js, вы можете установить его с помощью NPM, запустив npm install --save moment, а затем потребовав его в свой файл следующим образом: const moment = require('moment'); (см. Документацию на данный момент пакет NPM)
  • Если вы запускаете свой код в веб-браузере, вы можете загрузить библиотеку Moment.js с их веб-сайта и включить ее в свой HTML-документ с помощью тега скрипта, например: <script src="path/to/moment.js></script>.

Давайте рассмотрим несколько примеров наиболее распространенных операций, для которых я обычно использую Moment.js:

Разбор и форматирование

Допустим, вам дан набор объектов с отметками времени в нестандартном формате, например, «29–03–1989». Предположим также, что мы хотим отобразить это в более удобном для пользователя формате, например, «день недели, но только первые три буквы, затем месяц, затем дата с соответствующим порядковым номером, запятая и год». Moment.js позволяет нам анализировать и форматировать даты на лету, используя строки формата:

Эти странные строки со всеми D, M и Y являются строками формата, и как только вы привыкнете к синтаксису, они позволяют вам перейти от любого формата к любому другому формату с изменением простого строкового аргумента. Очень полезно, если у вас нерешительный клиент! Подробнее о синтаксическом анализе и форматировании дат можно узнать на этой странице документации Moment.js.

Управление датами

Любое приложение, которому требуется какое-то планирование, может извлечь большую пользу из методов манипулирования датой, которые предлагает Moment.js:

  • Мы можем добавить или вычесть любую единицу времени
  • Мы можем рассчитать даты до начала или конца любой единицы времени
  • Мы даже можем смещать даты в соответствии с UTC / GMT (например, в Японии GMT + 9).

Отображение относительного времени

Иногда вы хотите показать своим пользователям, что что-то происходит относительно времени, когда они это читают. Допустим, вашему пользователю доставляется посылка, и вы хотите показать ему, сколько ему нужно ждать:

Большим преимуществом этих методов является их удобочитаемость. Написание кода, который легко понять, приводит к меньшему количеству ошибок и, в случае ошибок, к более легкой отладке.

Заключение

Стоит отметить, что все, что делает Moment.js, также можно выполнить с помощью простых объектов даты JavaScript, но ценность библиотеки заключается в ее удобстве и удобстве для человека. Использование библиотек с дружественными API значительно расширяет ваши возможности как разработчика, приводит к более удобочитаемому коду, лучшему общению с другими разработчиками и, надеюсь, меньшему количеству ошибок. В следующий раз, когда вы будете работать над проектом с большим количеством синтаксического анализа даты, форматирования и планирования, попробуйте Moment.js, и вы можете избавить себя от кошмаров.

Если вы уже работаете над проектом с датами, попробуйте рефакторинг кода для использования Moment.js. Используя навыки разработки через тестирование, которые мы преподаем на наших курсах, это должно быть проще простого!

Если вы заинтересованы в изучении разработки программного обеспечения, вам следует ознакомиться с учебной программой наших курсов Очное и заочное здесь!

Первоначально опубликовано на blog.northcoders.com.