Temporal.Duration.prototype.toString()

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

toString() 方法是 Temporal.Duration 实例上的一个方法,它会返回一个以 ISO 8601 格式 表示该持续时间的字符串。

语法

js
toString()
toString(options)

参数

options 可选

一个包含以下部分或全部属性的对象(按检索和验证的顺序):

fractionalSecondDigits 可选

一个 0 到 9 之间的整数,或字符串 "auto"。默认值为 "auto"。如果为 "auto",则从小数秒中删除尾随零。否则,秒组件的小数部分包含这么多位数,必要时用零填充或四舍五入。

roundingMode 可选

一个字符串,指定如何对超出 fractionalSecondDigits 的小数秒位数进行四舍五入。请参阅 Intl.NumberFormat()。默认为 "trunc"

smallestUnit 可选

一个字符串,指定要在输出中包含的最小单位。可能的值是 "second""millisecond""microsecond""nanosecond",或者它们的复数形式,它们分别等同于 fractionalSecondDigits 的值为 0369。如果指定了此选项,则会忽略 fractionalSecondDigits

返回值

一个字符串,以 ISO 8601 格式 表示给定的持续时间,并根据选项格式化亚秒部分。零持续时间表示为 "PT0S"

异常

RangeError

如果任何选项无效,则抛出。

示例

使用 toString()

js
const duration = Temporal.Duration.from({ hours: 1, minutes: 30, seconds: 15 });
console.log(duration.toString()); // 'PT1H30M15S'

// Stringification implicitly calls toString()
console.log(`${duration}`); // 'PT1H30M15S'

使用选项

js
const worldRecord = Temporal.Duration.from({ seconds: 9, milliseconds: 580 });
console.log(worldRecord.toString()); // 'PT9.58S'
console.log(worldRecord.toString({ fractionalSecondDigits: 1 })); // 'PT9.5S'
console.log(worldRecord.toString({ fractionalSecondDigits: 0 })); // 'PT9S'
console.log(worldRecord.toString({ smallestUnit: "millisecond" })); // 'PT9.580S'
console.log(
  worldRecord.toString({
    fractionalSecondDigits: 1,
    roundingMode: "halfExpand",
  }),
); // 'PT9.6S'

规范

规范
Temporal
# sec-temporal.duration.prototype.tostring

浏览器兼容性

另见