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
Using formatToParts
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 |
---|---|---|
ECMAScript Internationalization API (ECMA-402) The definition of 'RelativeTimeFormat.formatToParts()' in that specification. |
Stage 4 |
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.
Desktop | Mobile | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
formatToParts | Chrome Full support 71 | Edge Full support 79 | 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
- See implementation notes.
- See implementation notes.