Intl.RelativeTimeFormat.prototype.format()
format()
方法是 Intl.RelativeTimeFormat
实例,用于根据此 Intl.RelativeTimeFormat
对象的区域设置和格式化选项来格式化 value
和 unit
。
试一试
语法
js
format(value, unit)
参数
返回值
一个字符串,表示根据此 Intl.RelativeTimeFormat
对象的区域设置和格式化选项格式化的给定 value
和 unit
。
注意:大多数情况下,format()
返回的格式是一致的。但是,即使在同一区域设置中,输出也可能在不同的实现之间有所不同——输出变化是设计使然,并且规范允许这样做。它也可能不是您预期的结果。例如,字符串可能使用不换行空格或被双向控制字符包围。您不应该将 format()
的结果与硬编码常量进行比较。
示例
基本格式用法
以下示例显示了如何使用英语创建相对时间格式化程序。
js
// Create a relative time formatter in your locale
// with default values explicitly passed in.
const rtf = new Intl.RelativeTimeFormat("en", {
localeMatcher: "best fit", // other values: "lookup"
numeric: "always", // other values: "auto"
style: "long", // other values: "short" or "narrow"
});
// Format relative time using negative value (-1).
rtf.format(-1, "day"); // "1 day ago"
// Format relative time using positive value (1).
rtf.format(1, "day"); // "in 1 day"
使用 auto 选项
如果传递了 numeric:auto
选项,它将生成字符串 yesterday
、today
或 tomorrow
,而不是 1 day ago
、in 0 days
或 in 1 day
。这允许在输出中不必始终使用数值。
js
// Create a relative time formatter in your locale
// with numeric: "auto" option value passed in.
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
// Format relative time using negative value (-1).
rtf.format(-1, "day"); // "yesterday"
rtf.format(0, "day"); // "today"
// Format relative time using positive day unit (1).
rtf.format(1, "day"); // "tomorrow"
规范
规范 |
---|
ECMAScript 国际化 API 规范 # sec-Intl.RelativeTimeFormat.prototype.format |
浏览器兼容性
BCD 表仅在启用了 JavaScript 的浏览器中加载。