Spec-Zone.ru › JavaScript

Intl.DateTimeFormat.prototype.formatRange()

Базовый уровень Широко доступен

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в версиях браузеров. Она доступна в браузерах с сентября 2017 года.

Метод formatRange() экземпляров Intl.DateTimeFormat форматирует диапазон дат наиболее кратким способом на основе локалей и опций, предоставленных при создании этого объекта Intl.DateTimeFormat.

Попробуйте

const options1 = {
  weekday: "long",
  year: "numeric",
  month: "long",
  day: "numeric",
};
const options2 = { year: "2-digit", month: "numeric", day: "numeric" };

const startDate = new Date(Date.UTC(2007, 0, 10, 10, 0, 0));
const endDate = new Date(Date.UTC(2008, 0, 10, 11, 0, 0));

const dateTimeFormat = new Intl.DateTimeFormat("en", options1);
console.log(dateTimeFormat.formatRange(startDate, endDate));
// Expected output: "Wednesday, January 10, 2007 – Thursday, January 10, 2008"

const dateTimeFormat2 = new Intl.DateTimeFormat("en", options2);
console.log(dateTimeFormat2.formatRange(startDate, endDate));
// Expected output: "1/10/07 – 1/10/08"

Синтаксис

formatRange(startDate, endDate)

Параметры

startDate
Начало диапазона дат. Может быть объектом Date или Temporal.PlainDateTime. Кроме того, может быть объектом Temporal.PlainTime, Temporal.PlainDate, Temporal.PlainYearMonth или Temporal.PlainMonthDay, если объект DateTimeFormat был настроен для вывода как минимум одной соответствующей части даты.

Примечание: Объект Temporal.ZonedDateTime всегда вызовет TypeError; вместо этого используйте Temporal.ZonedDateTime.prototype.toLocaleString() или преобразуйте его в объект Temporal.PlainDateTime.

endDate
Конец диапазона дат. Должен иметь тот же тип, что и startDate.

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

Строка, представляющая заданный диапазон дат, отформатированная в соответствии с локалью и опциями форматирования этого объекта Intl.DateTimeFormat. Если начальная и конечная даты эквивалентны на уровне точности вывода, вывод будет содержать только одну дату.

Примеры

Основное использование formatRange

Этот метод принимает два объекта Date и форматирует диапазон дат наиболее кратким способом на основе locale и options, предоставленных при создании Intl.DateTimeFormat.

const date1 = new Date(Date.UTC(1906, 0, 10, 10, 0, 0)); // Wed, 10 Jan 1906 10:00:00 GMT
const date2 = new Date(Date.UTC(1906, 0, 10, 11, 0, 0)); // Wed, 10 Jan 1906 11:00:00 GMT
const date3 = new Date(Date.UTC(1906, 0, 20, 10, 0, 0)); // Sat, 20 Jan 1906 10:00:00 GMT

const fmt1 = new Intl.DateTimeFormat("en", {
  year: "2-digit",
  month: "numeric",
  day: "numeric",
  hour: "numeric",
  minute: "numeric",
});
console.log(fmt1.format(date1)); // '1/10/06, 10:00 AM'
console.log(fmt1.formatRange(date1, date2)); // '1/10/06, 10:00 – 11:00 AM'
console.log(fmt1.formatRange(date1, date3)); // '1/10/06, 10:00 AM – 1/20/07, 10:00 AM'

const fmt2 = new Intl.DateTimeFormat("en", {
  year: "numeric",
  month: "short",
  day: "numeric",
});
console.log(fmt2.format(date1)); // 'Jan 10, 1906'
console.log(fmt2.formatRange(date1, date2)); // 'Jan 10, 1906'
console.log(fmt2.formatRange(date1, date3)); // 'Jan 10 – 20, 1906'

Спецификации

Спецификация
ECMAScript® 2027 Internationalization API Specification
# sec-intl.datetimeformat.prototype.formatRange

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
formatRange
76
79
91
63
14.1
76
91
54
14.5
12.0
76
14.5
1.0.0
1.8
12.9.0До версии 13.0.0 по умолчанию доступны только данные локали для en-US. Дополнительную информацию см. в конструкторе DateTimeFormat().

См. также

  • Intl.DateTimeFormat

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRange

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API