Intl.DurationFormat.prototype.formatToParts()
**formatToParts()
** 是 Intl.DurationFormat
实例的一个方法,它允许根据区域设置格式化由 Intl.DurationFormat
格式化程序生成的字符串。
语法
js
formatToParts(duration)
参数
duration
可选-
要格式化的持续时间对象。它应该包含以下属性中的部分或全部:
"months"
、"weeks"
、"days"
、"hours"
、"minutes"
、"seconds"
、"milliseconds"
、"microseconds"
、"nanoseconds"
。
返回值
一个包含格式化持续时间部分的对象的 Array
。
描述
formatToParts()
方法对于持续时间对象的自定义格式化很有用。它返回一个包含特定于区域设置的标记的对象的 Array
,从中可以构建自定义字符串,同时保留特定于区域设置的部分。formatToParts()
方法返回的结构如下所示
js
[
{ type: "integer", value: "7", unit: "hour" },
{ type: "literal", value: " ", unit: "hour" },
{ type: "unit", value: "hr", unit: "hour" },
{ type: "literal", value: ", " },
{ type: "integer", value: "8", unit: "minute" },
{ type: "literal", value: " ", unit: "minute" },
{ type: "unit", value: "min", unit: "minute" },
];
示例
formatToParts
方法通过提供分部分的字符串来启用对 DurationFormat
格式化程序生成的字符串的区域设置感知格式化
js
const duration = {
hours: 7,
minutes: 8,
seconds: 9,
milliseconds: 123,
microseconds: 456,
nanoseconds: 789,
};
new Intl.DurationFormat("en", { style: "long" }).formatToParts(duration);
// Returned value:
[
{ type: "integer", value: "7", unit: "hour" },
{ type: "literal", value: " ", unit: "hour" },
{ type: "unit", value: "hours", unit: "hour" },
{ type: "literal", value: ", " },
{ type: "integer", value: "8", unit: "minute" },
{ type: "literal", value: " ", unit: "minute" },
{ type: "unit", value: "minutes", unit: "minute" },
{ type: "literal", value: ", " },
{ type: "integer", value: "9", unit: "second" },
{ type: "literal", value: " ", unit: "second" },
{ type: "unit", value: "seconds", unit: "second" },
{ type: "literal", value: ", " },
{ type: "integer", value: "123", unit: "millisecond" },
{ type: "literal", value: " ", unit: "millisecond" },
{ type: "unit", value: "milliseconds", unit: "millisecond" },
{ type: "literal", value: ", " },
{ type: "integer", value: "456", unit: "microsecond" },
{ type: "literal", value: " ", unit: "microsecond" },
{ type: "unit", value: "microseconds", unit: "microsecond" },
{ type: "literal", value: " and " },
{ type: "integer", value: "789", unit: "nanosecond" },
{ type: "literal", value: " ", unit: "nanosecond" },
{ type: "unit", value: "nanoseconds", unit: "nanosecond" },
];
规范
规范 |
---|
Intl.DurationFormat # sec-Intl.DurationFormat.prototype.formatToParts |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。