Как конвертировать Unix timestamp в дату в Moment.js

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы преобразовать UNIX-время в человеческую дату с помощью moment.js, воспользуйтесь следующим кодом:

JS
Скопировать код
var date = moment.unix(UNIX_TIMESTAMP).format("YYYY-MM-DD HH:mm");

Замените UNIX_TIMESTAMP на конкретное числовое значение временной метки, чтобы получить отформатированную дату в виде строки.

Для использования формата по умолчанию, подходящего под текущую локаль, применяйте:

JS
Скопировать код
var localDate = moment.unix(UNIX_TIMESTAMP).format('L');

Помните, что moment.js работает с временными метками UNIX, измеряемыми в секундах. Убедитесь в корректности ваших меток для точного преобразования.

Кинга Идем в IT: пошаговый план для смены профессии

Некоторые тонкости: временные метки UNIX и часовые пояса

Важность секунд

Временные метки UNIX отсчитывают секунды с начала эпохи UNIX, т.е. с 1 января 1970 года (UTC). В то время как объекты Date в JavaScript работают с миллисекундами. Это основное различие важно при использовании moment.unix():

JS
Скопировать код
// У нас есть 99 проблем, но преобразование времени уже не одна из них!
var jsDate = new Date(UNIX_TIMESTAMP * 1000);

Часовые пояса и их особенности

Переход от одного часового пояса к другому может быть сравним с танцем. К счастью, в библиотеке moment.js есть функция tz(), которая с лёгкостью помогает это сделать:

JS
Скопировать код
// Нежный танец между часовыми поясами
var zonedDate = moment.unix(UNIX_TIMESTAMP).tz('America/New_York').format("YYYY-MM-DD HH:mm");

Дельный совет: Всегда удостоверяйтесь в точности временной метки перед её преобразованием, чтобы избежать ошибки, связанной с "Неверной датой".

Основы преобразования: обработка и валидация входных данных

Проверка входных данных

Перед началом преобразования уделите время (игра слов преднамеренна!) на проверку временной метки. Несколько базовых проверок могут предотвратить множество проблем:

  • Есть ли уверенность, что входное значение является числом, а не строкой?
  • Измеряется ли оно в секундах с начала эпохи UNIX (а не в миллисекундах или чем-то ещё)?
  • Не выходит ли оно за рамки разумных временных пределов?

Особенности и непредвиденные ситуации

Надежда на лучшее, но всегда быть готовым к худшему – этот принцип наиболее подходит для работы с временными метками, когда встречаются крайние значения, неопределённые или пустые входные данные. Ваш код должен быть способен эффективно обработать все такие случаи.

JS
Скопировать код
// Как в мистическом парадоксе Шрёдингера: временная метка, которая одновременно существует и не существует
var date = moment.unix(UNIX_TIMESTAMP);
if (date.isValid()) {
   console.log(date.format("YYYY-MM-DD HH:mm"));
} else {
   console.log("Invalid timestamp");
}

Убедитесь в точности и соответствии преобразованной даты ожиданиям – это ваше руководство к качеству!

Дополнительные рекомендации для практического использования

Переход к JS Date

Если вам нужен объект Date в JavaScript, то воспользуйтесь методом toDate() от moment.js:

JS
Скопировать код
// Вы, наконец, получили ваш моментальный объект Date!
var jsDateObject = moment.unix(UNIX_TIMESTAMP).toDate();

Стресс-тестирование

Тестируйте свои решения на крайние ситуации, например, учитывайте високосные годы, начало эпохи и необычно отформатированные даты. Потраченное время на такие проверки оправдает себя упрочненным кодом!

Мастерство работы с часовыми поясами

С помощью moment.tz() и метода format легко переключаться между различными часовыми поясами. Работа займёт столько же времени, сколько удовольствия доставит чашечка кофе.

JS
Скопировать код
// Управление часовыми поясами проще, чем вы думаете!
var zonedDate = moment.unix(UNIX_TIMESTAMP).tz('America/New_York').format("YYYY-MM-DD HH:mm");

Визуалиация

Представьте себе временную метку как капсулу времени (🕒), которая ждет раскрытия своего содержимого:

JS
Скопировать код
// Новый день, новые возможности
moment.unix(1615158000);

Раскроем тайны капсулы времени (🕒), превратив её в календарную дату (📅):

Markdown
Скопировать код
До: 🕒 1615158000
После:  📅 Пн, 8 марта 2021 года, 00:00:00 GMT

Не позвольте трудностям с часовыми поясами и проверками временных меток затруднить установление чёткого соответствия календарным датам!

Полезные материалы

  1. Moment.js | Документация — подробное руководство по работе с UNIX-метками в Moment.js.
  2. Date – JavaScript | MDN — обзор объекта Date в JavaScript на сайте Mozilla Developer Network.
  3. Unix Time Stamp – Epoch Converter — инструмент для преобразования UNIX-времени в привычный формат.
  4. GitHub – moment/moment: Парсинг, валидация, манипуляции и вывод дат в JavaScript. — изучите устройство Moment.js внутри через исходный код.
  5. Полное руководство по датам в JavaScript — подробное изучение работы с датами и временем в JavaScript.
  6. Шпаргалка по Moment.js — полезные команды Moment.js в удобном для быстрого доступа формате.