Intl.DurationFormat.prototype.formatToParts()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die formatToParts()
-Methode von Intl.DurationFormat
-Instanzen gibt ein Array von Objekten zurück, die jeweils einen Teil des formatierten Strings repräsentieren, der von format()
zurückgegeben würde. Sie ist nützlich, um benutzerdefinierte Strings aus den ortsspezifischen Tokens zu erstellen.
Syntax
formatToParts(duration)
Parameter
duration
Optional-
Das zu formatierende Dauerobjekt. Es sollte einige oder alle der folgenden Eigenschaften enthalten:
years
,months
,weeks
,days
,hours
,minutes
,seconds
,milliseconds
,microseconds
,nanoseconds
. Der Wert jeder Eigenschaft sollte eine ganze Zahl sein, und die Vorzeichen sollten konsistent sein. Es kann sich um einTemporal.Duration
-Objekt handeln; weitere Informationen zu diesen Eigenschaften finden Sie in derTemporal.Duration
-Dokumentation.
Rückgabewert
Ein Array
von Objekten, die die formatierte Dauer in Teilen enthalten. Jedes Objekt hat zwei oder drei Eigenschaften: type
, value
und optional unit
, wobei jede einen String enthält. Die Verkettung der Strings in value
, in der angegebenen Reihenfolge, führt zu demselben String wie format()
. Die Teile können als direkt aus dem Aufruf von Intl.NumberFormat.prototype.formatToParts()
mit dem numerischen Wert und ihren jeweiligen Einheiten erhalten betrachtet werden. Alle Tokens, die von NumberFormat
erzeugt werden, besitzen eine zusätzliche unit
-Eigenschaft, die die Einzahl der Eingabe-Einheit ist; dies dient programmatischen Zwecken und ist nicht lokalisiert. Die lokalisierte Einheit wird als separates unit
-Token im Ergebnis von NumberFormat
ausgegeben. Die Teile jeder Zeiteinheit werden in derselben Weise wie der Aufruf von Intl.ListFormat.prototype.formatToParts()
mit { type: "unit" }
zusammengefügt, sodass zusätzliche literale Tokens eingefügt werden.
Beispiele
Die formatToParts
-Methode ermöglicht die ortsspezifische Formatierung von Strings, die von DurationFormat
-Formatierern erzeugt werden, indem sie den String in Teile aufteilt:
const duration = {
hours: 7,
minutes: 8,
seconds: 9,
milliseconds: 123,
microseconds: 456,
nanoseconds: 789,
};
new Intl.DurationFormat("en", { style: "long" }).formatToParts(duration);
// Returned value:
[
{ type: "integer", value: "7", unit: "hour" },
{ type: "literal", value: " ", unit: "hour" },
{ type: "unit", value: "hours", unit: "hour" },
{ type: "literal", value: ", " },
{ type: "integer", value: "8", unit: "minute" },
{ type: "literal", value: " ", unit: "minute" },
{ type: "unit", value: "minutes", unit: "minute" },
{ type: "literal", value: ", " },
{ type: "integer", value: "9", unit: "second" },
{ type: "literal", value: " ", unit: "second" },
{ type: "unit", value: "seconds", unit: "second" },
{ type: "literal", value: ", " },
{ type: "integer", value: "123", unit: "millisecond" },
{ type: "literal", value: " ", unit: "millisecond" },
{ type: "unit", value: "milliseconds", unit: "millisecond" },
{ type: "literal", value: ", " },
{ type: "integer", value: "456", unit: "microsecond" },
{ type: "literal", value: " ", unit: "microsecond" },
{ type: "unit", value: "microseconds", unit: "microsecond" },
{ type: "literal", value: ", " },
{ type: "integer", value: "789", unit: "nanosecond" },
{ type: "literal", value: " ", unit: "nanosecond" },
{ type: "unit", value: "nanoseconds", unit: "nanosecond" },
];
Spezifikationen
Specification |
---|
Intl.DurationFormat # sec-Intl.DurationFormat.prototype.formatToParts |
Browser-Kompatibilität
BCD tables only load in the browser