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.
The format()
method of Intl.RelativeTimeFormat
instances formats a value
and unit
according to the locale and formatting options of this Intl.RelativeTimeFormat
object.
Try it
Syntax
format(value, unit)
Parameters
Return value
A string representing the given value
and unit
formatted according to the locale and formatting options of this Intl.RelativeTimeFormat
object.
Note: Most of the time, the formatting returned by format()
is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of format()
to hardcoded constants.
Examples
Basic format usage
The following example shows how to create a relative time formatter using the English language.
// 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"
Using the auto option
If numeric:auto
option is passed, it will produce the string yesterday
, today
, or tomorrow
instead of 1 day ago
, in 0 days
, or in 1 day
. This allows to not always have to use numeric values in the output.
// 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"
Specifications
Specification |
---|
ECMAScript Internationalization API Specification # sec-Intl.RelativeTimeFormat.prototype.format |
Browser compatibility
BCD tables only load in the browser