このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Intl.RelativeTimeFormat

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年9月.

Intl.RelativeTimeFormat オブジェクトは言語独自の相対時間の書式化をできるようにします。

試してみましょう

const rtf1 = new Intl.RelativeTimeFormat("en", { style: "short" });

console.log(rtf1.format(3, "quarter"));
// 予想される結果: "in 3 qtrs."

console.log(rtf1.format(-1, "day"));
// 予想される結果: "1 day ago"

const rtf2 = new Intl.RelativeTimeFormat("es", { numeric: "auto" });

console.log(rtf2.format(2, "day"));
// 予想される結果: "pasado mañana"

コンストラクター

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()

value および unit を、指定された Intl.RelativeTimeFormat オブジェクトのロケールと書式化オプションに従って書式化します。

Intl.RelativeTimeFormat.prototype.formatToParts()

ロケール固有のカスタム形式に使用可能な相対時間の形式を部分的に表現したオブジェクトの Array を返します。

Intl.RelativeTimeFormat.prototype.resolvedOptions()

オブジェクトの初期化中に計算されたロケールや形式のオプションを反映したプロパティを持つ新しいオブジェクトを返します。

基本的な format の使用例

次の例は、英語の相対時間フォーマッターの使用方法を示しています。

js
// 明示的に渡された既定値を使って
// ロケールの相対時間を生成します
const rtf = new Intl.RelativeTimeFormat("en", {
  localeMatcher: "best fit", // other values: "lookup"
  numeric: "always", // other values: "auto"
  style: "long", // other values: "short" or "narrow"
});

// 負数の値 (-1) を使った相対時間の形式
rtf.format(-1, "day"); // "1 day ago"

// 正数の値 (1) を使った相対時間の形式
rtf.format(1, "day"); // "in 1 day"

formatToParts の使用例

以下は形式された部品を返す相対時間フォーマッターの生成方法の例です。

js
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });

// 日単位の相対時間形式
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" }
// ]

仕様書

Specification
ECMAScript® 2027 Internationalization API Specification
# relativetimeformat-objects

ブラウザーの互換性

関連情報