Intl.RelativeTimeFormat.prototype.format()
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 format()
-Methode von Intl.RelativeTimeFormat
-Instanzen formatiert einen value
und eine unit
gemäß der Sprache und Formatierungsoptionen des Intl.RelativeTimeFormat
-Objekts.
Probieren Sie es aus
const rtf1 = new Intl.RelativeTimeFormat("en", { style: "short" });
console.log(rtf1.format(3, "quarter"));
// Expected output: "in 3 qtrs."
console.log(rtf1.format(-1, "day"));
// Expected output: "1 day ago"
console.log(rtf1.format(10, "seconds"));
// Expected output: "in 10 sec."
Syntax
format(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"
. Auch Pluralformen sind erlaubt.
Rückgabewert
Ein String, der den gegebenen value
und die unit
formatiert und sich nach der Sprache und den Formatierungsoptionen des Intl.RelativeTimeFormat
-Objekts richtet.
Hinweis:
Meistens ist die von format()
zurückgegebene Formatierung konsistent. Trotzdem kann die Ausgabe je nach Umsetzung variieren, selbst innerhalb derselben Sprache — solche Variationen sind im Design vorgesehen und durch die Spezifikation erlaubt. Sie entspricht möglicherweise auch nicht Ihren Erwartungen. Zum Beispiel kann der String nicht trennbare Leerzeichen enthalten oder von bidirektionalen Steuerzeichen umgeben sein. Sie sollten die Ergebnisse von format()
nicht mit fest kodierten Konstanten vergleichen.
Beispiele
Grundlegende Nutzung der Formatierung
Das folgende Beispiel zeigt, wie ein Formatter für relative Zeit mit englischer Sprache erstellt wird.
// Create a relative time formatter in your locale
// with default values explicitly passed in.
const rtf = new Intl.RelativeTimeFormat("en", {
localeMatcher: "best fit", // other values: "lookup"
numeric: "always", // other values: "auto"
style: "long", // other values: "short" or "narrow"
});
// Format relative time using negative value (-1).
rtf.format(-1, "day"); // "1 day ago"
// Format relative time using positive value (1).
rtf.format(1, "day"); // "in 1 day"
Verwendung der Auto-Option
Wenn die Option numeric:auto
übergeben wird, erzeugt sie die Zeichenfolge yesterday
, today
oder tomorrow
anstelle von 1 day ago
, in 0 days
oder in 1 day
. Dadurch muss nicht immer ein numerischer Wert in der Ausgabe verwendet werden.
// Create a relative time formatter in your locale
// with numeric: "auto" option value passed in.
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
// Format relative time using negative value (-1).
rtf.format(-1, "day"); // "yesterday"
rtf.format(0, "day"); // "today"
// Format relative time using positive day unit (1).
rtf.format(1, "day"); // "tomorrow"
Spezifikationen
Specification |
---|
ECMAScript® 2025 Internationalization API Specification # sec-Intl.RelativeTimeFormat.prototype.format |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
format |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- See implementation notes.