Переход на 24-часовой формат в moment.js: функция meridiem
Быстрый ответ
Чтобы отобразить время в 24-часовом формате с использованием библиотеки Moment.js, используется формат moment().format('HH:mm')
. Здесь HH
обозначает часы в диапазоне 00
до 23
, а mm
— минуты.
const formattedTime = moment().format('HH:mm');
console.log(formattedTime); // Верите или нет, но сейчас "14:23"!
Если вам требуется переключиться с 12-часового формата на 24-часовой, достаточно заменить hh
на HH
в вашем коде.
Переход между форматами времени
Один и тот же подход не всегда подходит для всех задач, особенно когда речь идет о форматах времени. В Moment.js токен LT
отображает время в 12-часовом формате с указанием AM/PM, подходящем для конкретной локали.
let twelveHourTime = moment().format('LT'); // Например, "2:23 PM"... время для перерыва на чай!
Чтобы преобразовать это время в 24-часовой формат, можно изменить строку формата следующим образом:
let twentyFourHourTime = twelveHourTime.replace(/(\d+)(:\d+)(\s+)(AM|PM)/,
(match, hour, minute, space, meridiem) => `${hour.padStart(2,'0')}${minute}`); // Вот так... работаем с математикой!
Работа с единицами времени
Когда требуется повышенная точность, на помощь приходят секунды ss
и миллисекунды SSS
.
const fullTime = moment().format('HH:mm:ss.SSS');
console.log(fullTime); // Такая точность: "14:23:15.123"
В Moment.js предусмотрены методы для управления компонентами времени, например, hour
, minute
и second
.
const hour = moment().hour(); // Получаем текущий час
moment().hour(15).minute(30); // Устанавливаем время на 15:30
Визуализация
Широко известно, что представление времени в виде расписания движения поездов помогает понять специфику 24-часового формата:
| Поезд (Moment) | Время отправления | Время в 24-ч. формате |
| --------------- | ----------------- | --------------------- |
| Утренний | 04:00 | `04:00` |
| Полденный | 12:00 | `12:00` |
| Дневной | 15:00 | `15:00` |
| Ночной | 00:00 | `00:00` |
Так мы распрощаемся с путаницей AM/PM.
moment().format('HH:mm'); // Преобразование текущего времени в 24-часовой формат
Приятного пути! И маршрут от 00:00
до 23:59
прольется гладко, без всяких сбоев.
Учет каждого часового пояса
Обязанность любого разработчика – учитывать различные форматы времени. Moment.js позволяет настроить отображение времени в соответствии с международными стандартами.
Для настройки 24-часового отображения без AM/PM используйте функцию meridiem:
moment.updateLocale('en', {
meridiem : function (hour, minute, isLowerCase) {
return ''; // Прощай, AM/PM!
}
});
Продвинутое управление временем
Moment.js предоставляет мощные инструменты для конвертации, проверки и управления временем:
- Конвертация из 12-часового в 24-часовой формат и обратно.
- Проверка корректности пользовательского формата времени.
- Реализация обратного отсчета или планирование событий.
const isValidTime = (time) => moment(time, 'HH:mm').isValid(); // Проверка корректности времени
const addHours = (time, hoursToAdd) => moment(time, 'HH:mm').add(hoursToAdd, 'hours').format('HH:mm'); // Добавление часов к времени
const eventTime = moment('2023-05-01T15:00:00'); // Время планируемого события
const countdown = moment.duration(eventTime.diff(moment())).humanize(); // "через 10 дней"... или уже меньше!
Эти функции повышают статус разработчика до уровня истинного властителя времени.
Полезные материалы
- Moment.js | Документация — Официальная документация Moment.js.
- Шпаргалка по Moment.js — Шпаргалка по форматам дат в Moment.js.
- Date.prototype.toLocaleTimeString() – JavaScript | MDN — Метод JavaScript для форматирования времени.
- Проблемы с Moment.js · moment/moment · GitHub — Трекер проблем Moment.js.
- Moment.js | Руководства — Руководства по использованию Moment.js.
- moment – npm — Страница библиотеки Moment.js на NPM.