Intl.RelativeTimeFormat()-Konstruktor
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.
Der Intl.RelativeTimeFormat()
-Konstruktor erzeugt Intl.RelativeTimeFormat
-Objekte.
Syntax
Parameter
locales
Optional-
Ein String mit einem BCP 47-Sprachenkürzel oder eine
Intl.Locale
-Instanz, oder ein Array solcher Locale-Identifikatoren. Die Standard-Locale des Laufzeitumgebungs wird verwendet, wennundefined
übergeben wird oder wenn keiner der angegebenen Locale-Identifikatoren unterstützt wird. Für die allgemeine Form und Interpretation deslocales
-Arguments siehe die Parameterbeschreibung auf derIntl
-Hauptseite.Der folgende Unicode-Erweiterungsschlüssel ist erlaubt:
nu
-
Siehe
numberingSystem
.
Dieser Schlüssel kann auch mit
options
(wie unten aufgeführt) gesetzt werden. Wenn beide gesetzt sind, hat dieoptions
-Eigenschaft Vorrang. options
Optional-
Ein Objekt, das die folgenden Eigenschaften enthält, in der Reihenfolge, in der sie abgerufen werden (alle sind optional):
localeMatcher
-
Der zu verwendende Algorithmus zum Abgleichen von Locales. Mögliche Werte sind
"lookup"
und"best fit"
; der Standardwert ist"best fit"
. Weitere Informationen zu dieser Option finden Sie unter Locale-Erkennung und -Verhandlung. numberingSystem
-
Das Ziffernsystem, das für die Zahlenformatierung verwendet werden soll, wie z. B.
"arab"
,"hans"
,"mathsans"
, usw. Eine Liste unterstützter Ziffernsystemtypen finden Sie unterIntl.supportedValuesOf()
. Diese Option kann auch über dennu
-Unicode-Erweiterungsschlüssel gesetzt werden; wenn beide angegeben sind, hat dieseoptions
-Eigenschaft Vorrang. style
-
Der Stil der formatierten relativen Zeit. Mögliche Werte sind:
"long"
(Standard)-
Z. B. "in 1 month"
"short"
-
Z. B. "in 1 mo."
"narrow"
-
Z. B. "in 1 mo.". Der enge Stil könnte für einige Locales dem kurzen Stil ähneln.
numeric
-
Ob numerische Werte in der Ausgabe verwendet werden sollen. Mögliche Werte sind
"always"
und"auto"
; der Standardwert ist"always"
. Wenn"auto"
gesetzt ist, kann die Ausgabe idiomatischere Formulierungen wie"yesterday"
anstelle von"1 day ago"
verwenden.
Ausnahmen
RangeError
-
Wird geworfen, wenn
locales
oderoptions
ungültige Werte enthalten.
Beispiele
Grundlegende Nutzung der Formatierung
Das folgende Beispiel zeigt, wie ein relativ-zeitlicher Formatierer mit der englischen Sprache erstellt wird.
// Create a relative time formatter in your locale
// with default values explicitly passed in.
const rtf = new Intl.RelativeTimeFormat("en-US", {
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 numeric: "auto"
-Option übergeben wird, produziert sie den String yesterday
oder tomorrow
anstelle von 1 day ago
oder in 1 day
. Dies ist nützlich, wenn Sie keine numerischen Werte in der Ausgabe verwenden möchten.
// Create a relative time formatter in your locale
// with numeric: "auto" option value passed in.
const rtf = new Intl.RelativeTimeFormat("en-US", { numeric: "auto" });
// Format relative time using negative value (-1).
rtf.format(-1, "day"); // "yesterday"
// Format relative time using positive day unit (1).
rtf.format(1, "day"); // "tomorrow"
Wenn der Wert 0
ist, kann die Ausgabe von der Einheit abhängen. "0 seconds" wird durch die lokalisierte Version von "now" dargestellt.
rtf.format(0, "second"); // "now"
rtf.format(0, "day"); // "today"
rtf.format(0, "minute"); // "this minute"
Spezifikationen
Specification |
---|
ECMAScript® 2026 Internationalization API Specification # sec-intl-relativetimeformat-constructor |
Browser-Kompatibilität
Siehe auch
Intl.RelativeTimeFormat
Intl
Intl.RelativeTimeFormat
auf v8.dev (2018)