Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Intl.RelativeTimeFormat.prototype.format()

Baseline Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2020 browserübergreifend verfügbar.

Die format()-Methode von Intl.RelativeTimeFormat-Instanzen formatiert einen value und eine unit entsprechend der Sprach- und Formatierungsoptionen dieses Intl.RelativeTimeFormat-Objekts.

Probieren Sie es aus

const rtf = new Intl.RelativeTimeFormat("en", { style: "short" });

console.log(rtf.format(3, "quarter"));
// Expected output: "in 3 qtrs."

console.log(rtf.format(-1, "day"));
// Expected output: "1 day ago"

console.log(rtf.format(10, "seconds"));
// Expected output: "in 10 sec."

Syntax

js
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". Pluralformen sind ebenfalls erlaubt.

Rückgabewert

Ein String, der den angegebenen value und die unit formatiert gemäß der Sprach- und Formatierungsoptionen dieses Intl.RelativeTimeFormat-Objekts.

Hinweis: Meistens ist das von format() zurückgegebene Format konsistent. Es kann jedoch zwischen Implementierungen variieren, selbst innerhalb derselben Sprache – Variationen im Ergebnis sind absichtlich und durch die Spezifikation erlaubt. Es entspricht möglicherweise nicht Ihren Erwartungen. Beispielsweise kann die Zeichenkette geschützte Leerzeichen verwenden oder von bidirektionalen Steuerzeichen umgeben sein. Sie sollten die Ergebnisse von format() nicht mit fest codierten Konstanten vergleichen.

Beispiele

Grundlegende Formatverwendung

Das folgende Beispiel zeigt, wie ein relativer Zeitformatierer mit der englischen Sprache erstellt wird.

js
// 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 Zeichenkette yesterday, today oder tomorrow anstelle von 1 day ago, in 0 days oder in 1 day. Dies ermöglicht es, numerische Werte in der Ausgabe zu vermeiden.

js
// 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

Spezifikation
ECMAScript® 2027 Internationalization API Specification
# sec-Intl.RelativeTimeFormat.prototype.format

Browser-Kompatibilität

Siehe auch