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 的浏览器中加载。

另请参阅