Intl.RelativeTimeFormat
Intl.RelativeTimeFormat
对象支持语言敏感的相对时间格式化。
试一试
构造函数
Intl.RelativeTimeFormat()
-
创建一个新的
Intl.RelativeTimeFormat
对象。
静态方法
Intl.RelativeTimeFormat.supportedLocalesOf()
-
返回一个数组,其中包含提供的语言环境中无需回退到运行时默认语言环境即可支持的语言环境。
实例属性
这些属性定义在 Intl.RelativeTimeFormat.prototype
上,并由所有 Intl.RelativeTimeFormat
实例共享。
Intl.RelativeTimeFormat.prototype.constructor
-
创建实例对象的构造函数。对于
Intl.RelativeTimeFormat
实例,初始值为Intl.RelativeTimeFormat
构造函数。 Intl.RelativeTimeFormat.prototype[Symbol.toStringTag]
-
[Symbol.toStringTag]
属性的初始值为字符串"Intl.RelativeTimeFormat"
。此属性用于Object.prototype.toString()
。
实例方法
Intl.RelativeTimeFormat.prototype.format()
-
根据给定
Intl.RelativeTimeFormat
对象的语言环境和格式化选项格式化value
和unit
。 Intl.RelativeTimeFormat.prototype.formatToParts()
-
返回一个
Array
对象,表示可以用于自定义语言环境感知格式化的部分中的相对时间格式。 Intl.RelativeTimeFormat.prototype.resolvedOptions()
-
返回一个新对象,其属性反映了在对象初始化期间计算的语言环境和格式化选项。
示例
基本格式用法
以下示例显示了如何将相对时间格式化程序用于英语。
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"
使用 formatToParts
以下示例显示了如何创建一个返回格式化部分的相对时间格式化程序。
js
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" }
// ]
规范
规范 |
---|
ECMAScript 国际化 API 规范 # relativetimeformat-objects |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。
另请参阅
- FormatJS 中
Intl.RelativeTimeFormat
的 polyfill Intl
Intl.RelativeTimeFormat
在 v8.dev 上 (2018)