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 erstellt Intl.RelativeTimeFormat
Objekte.
Syntax
Parameter
locales
Optional-
Ein String mit einem BCP 47-Sprachkennzeichen oder einer
Intl.Locale
-Instanz oder ein Array solcher Locale-Identifikatoren. Die Standard-Locale zur Laufzeit wird verwendet, wennundefined
übergeben wird oder wenn keiner der angegebenen Locale-Identifikatoren unterstützt wird. Für die allgemeine Form und Interpretation des Argumentslocales
, siehe die Parameterbeschreibung auf der Hauptseite vonIntl
.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 mit den folgenden Eigenschaften, in der Reihenfolge, in der sie abgerufen werden (alle sind optional):
localeMatcher
-
Der Algorithmus zur Übereinstimmung der Locale, der verwendet werden soll. Mögliche Werte sind
"lookup"
und"best fit"
; Standard ist"best fit"
. Für Informationen zu dieser Option siehe Locale-Identifikation und -Verhandlung. numberingSystem
-
Das Zählsystem, das für die Zahlenformatierung verwendet werden soll, wie z.B.
"arab"
,"hans"
,"mathsans"
, und so weiter. Für eine Liste unterstützter Zählsystem-Typen sieheIntl.Locale.prototype.getNumberingSystems()
. 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:
numeric
-
Ob numerische Werte in der Ausgabe verwendet werden sollen. Mögliche Werte sind
"always"
und"auto"
; Standard ist"always"
. Wenn auf"auto"
gesetzt, kann die Ausgabe idiomatischere Formulierungen wie"yesterday"
anstelle von"1 day ago"
verwenden.
Ausnahmen
RangeError
-
Wird ausgelöst, wenn
locales
oderoptions
ungültige Werte enthalten.
Beispiele
Grundlegende Formatnutzung
Das folgende Beispiel zeigt, wie ein relativer Zeitformatierer 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", {
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, wird die Zeichenfolge yesterday
oder tomorrow
anstelle von 1 day ago
oder in 1 day
erzeugt. Dies ermöglicht es, nicht immer numerische Werte in der Ausgabe verwenden zu müssen.
// 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"
// Format relative time using positive day unit (1).
rtf.format(1, "day"); // "tomorrow"
Spezifikationen
Specification |
---|
ECMAScript Internationalization API Specification # sec-intl-relativetimeformat-constructor |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
Intl.RelativeTimeFormat
Intl
Intl.RelativeTimeFormat
auf v8.dev (2018)