Web/JavaScript/Reference/Global objects/Intl/RelativeTimeFormat/formatToParts
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.
Update compatibility data on GitHub
| 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
Full support 14 |
WebView Android
Full support 71 |
Chrome Android
Full support 71 |
Firefox Android
No support No |
Opera Android
Full support 50 |
Safari iOS
Full support 14 |
Samsung Internet Android
Full support 10.0 |
nodejs Full support 12.0.0 Full support 12.0.0 Notes' Before version 13.0.0, only the locale data for |
Legend
- Full support
- Full support
- No support
- No support
- See implementation notes.'
- See implementation notes.
See also
Intl.RelativeTimeFormat.prototype.formatToParts() by Mozilla Contributors is licensed under CC-BY-SA 2.5.