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

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". 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.

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 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.

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

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

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
format

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.

Siehe auch