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 von 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. Diese Methode ist nützlich zum Erstellen von benutzerdefinierten Strings aus den lokalisierungsspezifischen Token.
Probieren Sie es aus
const rtf1 = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
const parts = rtf1.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, das die formatierte relative Zeit in Teilen enthält. Jedes Objekt hat zwei oder drei Eigenschaften: type
, value
und optional unit
, wobei jede Eigenschaft einen String enthält. Die String-Konkatenation von value
, in der bereitgestellten Reihenfolge, ergibt denselben String wie format()
. Die Teile können als direkt aus dem Aufruf von Intl.NumberFormat.prototype.formatToParts()
mit dem numerischen Wert gewonnen betrachtet werden, wobei nur die Option numberingSystem
übergeben wird, und indem zusätzliche type: "literal"
-Token wie "in "
, " days ago"
usw. hinzugefügt werden. Alle Token, die durch die NumberFormat
-Methode erzeugt werden, haben eine zusätzliche Eigenschaft unit
, die die Einzahlform des Eingabe-unit
ist; dies dient der programmatischen Nutzung und ist nicht lokalisiert. Die lokalisierte Einheit wird als Teil eines Literal-Tokens ausgegeben.
Wenn options.numeric
auf "auto"
gesetzt ist und es einen speziellen String für den Wert gibt, ist das zurückgegebene Array ein einzelnes Literal-Token.
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® 2025 Internationalization API Specification # sec-Intl.RelativeTimeFormat.prototype.formatToParts |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
formatToParts |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- See implementation notes.