Intl.DateTimeFormat
Форматирует даты и время по правилам языка.
Доступно с: ES2015 (Intl)
Синтаксис
new Intl.DateTimeFormat(locales, options)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| locales | string | Необязательный. Язык и регион, например en-US или de-DE. |
| options | object | Необязательный. 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.
См. также
- Date.prototype.toLocaleDateString — Форматирует дату без времени по правилам языка.
- Date.prototype.toLocaleString — Форматирует дату вместе со временем по правилам языка.
- Intl.RelativeTimeFormat — Форматирует относительное время: «3 дня назад», «через час».
Вопросы и ответы по теме
В учебнике
- Форматирование: Intl — Форматирование чисел, денег, дат и окончаний слов в JavaScript с учётом языка: toLocaleString, Intl.NumberFormat, Intl.DateTimeFormat и Intl.PluralRules.