Intl.RelativeTimeFormat

基线 广泛可用

此功能已完善,可在许多设备和浏览器版本上运行。它自以下时间起在所有浏览器中都可用 2020 年 9 月.

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 对象的语言环境和格式化选项格式化 valueunit

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

另请参阅