Как конвертировать Unix timestamp в дату в Moment.js
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Чтобы преобразовать UNIX-время в человеческую дату с помощью moment.js
, воспользуйтесь следующим кодом:
var date = moment.unix(UNIX_TIMESTAMP).format("YYYY-MM-DD HH:mm");
Замените UNIX_TIMESTAMP
на конкретное числовое значение временной метки, чтобы получить отформатированную дату в виде строки.
Для использования формата по умолчанию, подходящего под текущую локаль, применяйте:
var localDate = moment.unix(UNIX_TIMESTAMP).format('L');
Помните, что moment.js работает с временными метками UNIX, измеряемыми в секундах. Убедитесь в корректности ваших меток для точного преобразования.
Некоторые тонкости: временные метки UNIX и часовые пояса
Важность секунд
Временные метки UNIX отсчитывают секунды с начала эпохи UNIX, т.е. с 1 января 1970 года (UTC). В то время как объекты Date
в JavaScript работают с миллисекундами. Это основное различие важно при использовании moment.unix()
:
// У нас есть 99 проблем, но преобразование времени уже не одна из них!
var jsDate = new Date(UNIX_TIMESTAMP * 1000);
Часовые пояса и их особенности
Переход от одного часового пояса к другому может быть сравним с танцем. К счастью, в библиотеке moment.js есть функция tz()
, которая с лёгкостью помогает это сделать:
// Нежный танец между часовыми поясами
var zonedDate = moment.unix(UNIX_TIMESTAMP).tz('America/New_York').format("YYYY-MM-DD HH:mm");
Дельный совет: Всегда удостоверяйтесь в точности временной метки перед её преобразованием, чтобы избежать ошибки, связанной с "Неверной датой".
Основы преобразования: обработка и валидация входных данных
Проверка входных данных
Перед началом преобразования уделите время (игра слов преднамеренна!) на проверку временной метки. Несколько базовых проверок могут предотвратить множество проблем:
- Есть ли уверенность, что входное значение является числом, а не строкой?
- Измеряется ли оно в секундах с начала эпохи UNIX (а не в миллисекундах или чем-то ещё)?
- Не выходит ли оно за рамки разумных временных пределов?
Особенности и непредвиденные ситуации
Надежда на лучшее, но всегда быть готовым к худшему – этот принцип наиболее подходит для работы с временными метками, когда встречаются крайние значения, неопределённые или пустые входные данные. Ваш код должен быть способен эффективно обработать все такие случаи.
// Как в мистическом парадоксе Шрёдингера: временная метка, которая одновременно существует и не существует
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:
// Вы, наконец, получили ваш моментальный объект Date!
var jsDateObject = moment.unix(UNIX_TIMESTAMP).toDate();
Стресс-тестирование
Тестируйте свои решения на крайние ситуации, например, учитывайте високосные годы, начало эпохи и необычно отформатированные даты. Потраченное время на такие проверки оправдает себя упрочненным кодом!
Мастерство работы с часовыми поясами
С помощью moment.tz()
и метода format
легко переключаться между различными часовыми поясами. Работа займёт столько же времени, сколько удовольствия доставит чашечка кофе.
// Управление часовыми поясами проще, чем вы думаете!
var zonedDate = moment.unix(UNIX_TIMESTAMP).tz('America/New_York').format("YYYY-MM-DD HH:mm");
Визуалиация
Представьте себе временную метку как капсулу времени (🕒
), которая ждет раскрытия своего содержимого:
// Новый день, новые возможности
moment.unix(1615158000);
Раскроем тайны капсулы времени (🕒
), превратив её в календарную дату (📅
):
До: 🕒 1615158000
После: 📅 Пн, 8 марта 2021 года, 00:00:00 GMT
Не позвольте трудностям с часовыми поясами и проверками временных меток затруднить установление чёткого соответствия календарным датам!
Полезные материалы
- Moment.js | Документация — подробное руководство по работе с UNIX-метками в Moment.js.
- Date – JavaScript | MDN — обзор объекта Date в JavaScript на сайте Mozilla Developer Network.
- Unix Time Stamp – Epoch Converter — инструмент для преобразования UNIX-времени в привычный формат.
- GitHub – moment/moment: Парсинг, валидация, манипуляции и вывод дат в JavaScript. — изучите устройство Moment.js внутри через исходный код.
- Полное руководство по датам в JavaScript — подробное изучение работы с датами и временем в JavaScript.
- Шпаргалка по Moment.js — полезные команды Moment.js в удобном для быстрого доступа формате.