Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

Intl.DateTimeFormat

Форматирует даты и время по правилам языка.

Доступно с: ES2015 (Intl)

Синтаксис

new Intl.DateTimeFormat(locales, options)

Параметры

ПараметрТипОписание
localesstringНеобязательный. Язык и регион, например en-US или de-DE.
optionsobjectНеобязательный. dateStyle, timeStyle, weekday, year, month, day, hour, minute, timeZone и другие.

Возвращаемое значение

Intl.DateTimeFormatОбъект с методами format(), formatRange() и formatToParts().

Примеры

Один форматтер для многих дат:

const formatter = new Intl.DateTimeFormat('en-US', { dateStyle: 'long' });
 
console.log(formatter.format(new Date(2026, 2, 15)));
console.log(formatter.format(new Date(2026, 11, 31)));

Результат:

March 15, 2026
December 31, 2026

Готовые стили и отдельные части:

const date = new Date(2026, 2, 15, 18, 5);
 
console.log(new Intl.DateTimeFormat('de-DE', { dateStyle: 'full', timeStyle: 'short' }).format(date));
console.log(new Intl.DateTimeFormat('en-US', { month: 'short', day: 'numeric' }).format(date));

Результат:

Sonntag, 15. März 2026 um 18:05
Mar 15

Диапазон дат:

const formatter = new Intl.DateTimeFormat('en-US', { month: 'long', day: 'numeric' });
 
console.log(formatter.formatRange(new Date(2026, 2, 15), new Date(2026, 2, 20)));

Результат:

March 15 – 20

Примечания

Создать форматтер один раз и вызывать format() много раз быстрее, чем каждый раз вызывать toLocaleDateString(). Часовой пояс пользователя возвращает Intl.DateTimeFormat().resolvedOptions().timeZone.

См. также

Вопросы и ответы по теме

В учебнике

  • Форматирование: Intl — Форматирование чисел, денег, дат и окончаний слов в JavaScript с учётом языка: toLocaleString, Intl.NumberFormat, Intl.DateTimeFormat и Intl.PluralRules.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.