Intl.RelativeTimeFormat.prototype.formatToParts()
Базовый уровень Широко доступен
Эта функция хорошо зарекомендовала себя и работает на множестве устройств и версий браузеров. Она доступна во всех браузерах с сентября 2020 года.
Метод formatToParts() экземпляров Intl.RelativeTimeFormat возвращает массив объектов, представляющих каждую часть отформатированной строки, которая была бы возвращена методом format(). Он полезен для создания пользовательских строк из локализованных токенов.
Попробуйте
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
const parts = rtf.formatToParts(10, "seconds");
console.log(parts[0].value);
// Expected output: "in "
console.log(parts[1].value);
// Expected output: "10"
console.log(parts[2].value);
// Expected output: " seconds"
Синтаксис
formatToParts(value, unit)
Параметры
-
value - Числовое значение для использования в интернационализированном сообщении относительного времени.
-
unit - Единица измерения для использования в интернационализированном сообщении относительного времени. Возможные значения:
"year","quarter","month","week","day","hour","minute","second". Разрешены также множественные формы.
Возвращаемое значение
Array объектов, содержащих отформатированное относительное время по частям. Каждый объект имеет два или три свойства: type, value и, опционально, unit, каждое из которых содержит строку. Конкатенация строк value в указанном порядке даст ту же строку, что и format(). Части можно рассматривать как полученные непосредственно путем вызова Intl.NumberFormat.prototype.formatToParts() с числовым значением, передавая только опцию numberingSystem, а затем добавляя дополнительные токены type: "literal", такие как "in ", " days ago" и т.д. Все токены, производимые NumberFormat, имеют дополнительное свойство unit, которое является единственной формой входного unit; это для программного использования и не локализовано. Локализованная единица измерения выводится как часть литерального токена.
Когда options.numeric равно "auto", и для значения существует специальная строка, возвращаемый массив представляет собой один литеральный токен.
Примеры
Использование formatToParts()
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
// Format relative time using the day unit
rtf.formatToParts(-1, "day");
// [{ type: "literal", value: "yesterday"}]
rtf.formatToParts(100, "day");
// [
// { type: "literal", value: "in " },
// { type: "integer", value: "100", unit: "day" },
// { type: "literal", value: " days" }
// ]
Спецификации
| Спецификация |
|---|
| ECMAScript® 2027 Internationalization API Specification # sec-Intl.RelativeTimeFormat.prototype.formatToParts |
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | |
formatToParts |
71 |
79 |
70 |
58 |
14 |
71 |
79 |
50 |
14 |
10.0 |
71 |
14 |
1.0.0 |
1.8 |
12.0.0До версии 13.0.0 по умолчанию доступны только локальные данные дляen-US. Подробнее см. конструктор RelativeTimeFormat(). |
См. также
© 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/RelativeTimeFormat/formatToParts