Intl.RelativeTimeFormat.prototype.formatToParts()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.
Die formatToParts()
-Methode der Intl.RelativeTimeFormat
-Instanzen gibt ein Array von Objekten zurück, das jedes Teil des formatierten Strings repräsentiert, der von format()
zurückgegeben würde. Sie ist nützlich zum Erstellen benutzerdefinierter Strings aus den lokalspezifischen Tokens.
Probieren Sie es aus
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"
Syntax
formatToParts(value, unit)
Parameter
value
-
Numerischer Wert, der in der internationalisierten relativen Zeitnachricht verwendet wird.
unit
-
Einheit, die in der internationalisierten relativen Zeitnachricht verwendet wird. Mögliche Werte sind:
"year"
,"quarter"
,"month"
,"week"
,"day"
,"hour"
,"minute"
,"second"
. Pluralformen sind ebenfalls zulässig.
Rückgabewert
Ein Array
von Objekten, die die formatierte relative Zeit in Teilen enthalten. Jedes Objekt hat zwei oder drei Eigenschaften: type
, value
und optional unit
, die alle eine Zeichenfolge enthalten. Die Verkettung der value
-Strings in der angegebenen Reihenfolge ergibt denselben String wie format()
. Die Teile können als direkt aus einem Aufruf von Intl.NumberFormat.prototype.formatToParts()
mit dem numerischen Wert und nur der numberingSystem
-Option gedacht werden, wobei zusätzliche type: "literal"
Tokens wie "in "
, " days ago"
usw. hinzugefügt werden. Alle von NumberFormat
erzeugten Tokens haben eine zusätzliche unit
-Eigenschaft, die die Singularform der Eingabe-Einheit ist; dies dient der programmatischen Nutzung und ist nicht lokalisiert. Die lokalisierte Einheit wird als Teil eines Literaltokens ausgegeben.
Wenn options.numeric
auf "auto"
eingestellt ist und es eine spezielle Zeichenfolge für den Wert gibt, besteht das zurückgegebene Array aus einem einzigen Literaltoken.
Beispiele
Verwendung von 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" }
// ]
Spezifikationen
Specification |
---|
ECMAScript® 2026 Internationalization API Specification # sec-Intl.RelativeTimeFormat.prototype.formatToParts |