The Intl.RelativeTimeFormat.prototype.formatToParts()
method returns an Array
of objects representing the relative time format in parts that can be used for custom locale-aware formatting.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Syntax
RelativeTimeFormat.formatToParts(value, unit)
Parameters
-
value
- Numeric value to use in the internationalized relative time message.
-
unit
-
Unit to use in the relative time internationalized message. Possible values are:
"year"
,"quarter"
,"month", "week", "day", "hour", "minute", "second"
. Plural forms are also permitted.
Return value
An Array
of objects containing the formatted relative time in parts.
Description
The
Intl.RelativeTimeFormat.prototype.formatToParts
method is a version of the format method which it returns an array of objects which represent "parts" of the object, separating the formatted number into its consituent parts and separating it from other surrounding text. These objects have two properties: type a
NumberFormat
formatToParts type, and value, which is the String which is the component of the output. If a "part" came from
NumberFormat
, it will have a unit property which indicates the unit being formatted; literals which are part of the larger frame will not have this property.
Examples
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" }); // Format relative time using the day unit rtf.formatToParts(-1, "day"); // > [{ type: "literal", value: "yesterday"}] rtf.formatToParts(100, "day"); // > [{ type: "literal", value: "in " }, // > { type: "integer", value: "100", unit: "day" }, // > { type: "literal", value: " days" }]
Specifications
Specification | Status | Comment |
---|---|---|
Intl.RelativeTime proposal | Stage 3 |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out
https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
formatToParts |
Chrome Full support 71 | Edge No support No | Firefox Full support 70 | IE No support No | Opera Full support 58 | Safari No support No | WebView Android Full support 71 | Chrome Android Full support 71 | Firefox Android No support No | Opera Android Full support 50 | Safari iOS No support No | Samsung Internet Android Full support 10.0 | nodejs Full support 12.0.0 |
Legend
- Full support
- Full support
- No support
- No support