JavaScript: форматирование даты через Intl
Для вывода даты в JavaScript используйте Intl.DateTimeFormat: он учитывает локаль, часовой пояс и нужные части даты. Например, new Intl.DateTimeFormat('ru-RU').format(new Date()) вернёт дату в привычном русском формате; для машинного обмена оставьте ISO-строку.
Краткий пример
const date = new Date('2026-10-25T12:30:00Z');
const formatter = new Intl.DateTimeFormat('ru-RU', {
dateStyle: 'long',
timeStyle: 'short',
timeZone: 'Europe/Moscow'
});
console.log(formatter.format(date)); // 25 октября 2026 г. в 15:30Intl принимает локаль и параметры отображения; используйте IANA-идентификатор часового пояса, чтобы результат не зависел от настроек компьютера.
Дата без времени
const shortDate = new Intl.DateTimeFormat('ru-RU', {
day: '2-digit', month: '2-digit', year: 'numeric',
timeZone: 'UTC'
});
console.log(shortDate.format(new Date('2026-10-25T00:00:00Z'))); // 25.10.2026Части даты для собственного шаблона
const parts = new Intl.DateTimeFormat('ru-RU', {
dateStyle: 'long', timeZone: 'UTC'
}).formatToParts(new Date('2026-10-25T00:00:00Z'));
const values = Object.fromEntries(parts.map(({type, value}) => [type, value]));
console.log(`${values.day} ${values.month} ${values.year}`); // 25 октября 2026Задача | Решение |
|---|---|
Удобный текст для интерфейса |
|
Дата для API или хранения | ISO 8601, например |
Собрать собственный шаблон |
|
Как задать часовой пояс?
Передайте timeZone: 'Europe/Moscow' или другой поддерживаемый IANA-идентификатор. Без параметра используется зона среды выполнения.
Как получить дату в формате для базы?
Храните timestamp в ISO 8601/UTC, например new Date().toISOString(). Локализованную строку оставьте для показа пользователю.