Intl.RelativeTimeFormat

Intl.RelativeTimeFormat オブジェクトは言語依存の相対時間のフォーマットを可能にします。

コンストラクタ

Intl.RelativeTimeFormat.RelativeTimeFormat()
Intl.RelativeTimeFormat  オブジェクトを作成します。

静的メソッド

Intl.RelativeTimeFormat.supportedLocalesOf()
指定したロケールのうち、ランタイムのデフォルトロケールにフォールバックすることなくサポートされているものを含む配列を返します。

インスタンスメソッド

Intl.RelativeTimeFormat.prototype.format()
Intl.RelativeTimeFormat オブジェクトに与えたロケールとフォーマットのオプションに照らして値や単位をフォーマットします。
Intl.RelativeTimeFormat.prototype.formatToParts()
ロケール固有のカスタムフォーマットに使用可能な相対時間のフォーマットを部分的に表現したオブジェクトの Array を返します。
Intl.RelativeTimeFormat.prototype.resolvedOptions()
オブジェクトの初期化中に計算されたロケールやフォーマットのオプションを反映したプロパティを持つ新しいオブジェクトを返します。

基本的な format の使用例

以下は英語の相対時間フォーマッターの使い方の例です。

// 明示的に渡されたデフォルト値を使ったロケールの相対時間を生成します
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 の使用例

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

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" }]

仕様

仕様 状態 コメント
ECMAScript Internationalization API (ECMA-402)
RelativeTimeFormat の定義

ブラウザ実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
RelativeTimeFormatChrome 完全対応 71Edge 完全対応 79Firefox 完全対応 65IE 未対応 なしOpera 完全対応 58Safari 未対応 なしWebView Android 完全対応 71Chrome Android 完全対応 71Firefox Android 完全対応 65Opera Android 完全対応 50Safari iOS 未対応 なしSamsung Internet Android 完全対応 10.0nodejs 完全対応 12.0.0
補足
完全対応 12.0.0
補足
補足 Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
RelativeTimeFormat() constructorChrome 完全対応 71Edge 完全対応 79Firefox 完全対応 65IE 未対応 なしOpera 完全対応 58Safari 未対応 なしWebView Android 完全対応 71Chrome Android 完全対応 71Firefox Android 完全対応 65Opera Android 完全対応 50Safari iOS 未対応 なしSamsung Internet Android 完全対応 10.0nodejs 完全対応 13.0.0
完全対応 13.0.0
部分対応 12.0.0
補足
補足 Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the RelativeTimeFormat instance silently falls back to en-US. To make full ICU (locale) data available for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.
formatChrome 完全対応 71Edge 完全対応 79Firefox 完全対応 65IE 未対応 なしOpera 完全対応 58Safari 未対応 なしWebView Android 完全対応 71Chrome Android 完全対応 71Firefox Android 完全対応 65Opera Android 完全対応 50Safari iOS 未対応 なしSamsung Internet Android 完全対応 10.0nodejs 完全対応 12.0.0
補足
完全対応 12.0.0
補足
補足 Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
formatToPartsChrome 完全対応 71Edge 完全対応 79Firefox 完全対応 70IE 未対応 なしOpera 完全対応 58Safari 未対応 なしWebView Android 完全対応 71Chrome Android 完全対応 71Firefox Android 未対応 なしOpera Android 完全対応 50Safari iOS 未対応 なしSamsung Internet Android 完全対応 10.0nodejs 完全対応 12.0.0
補足
完全対応 12.0.0
補足
補足 Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
resolvedOptionsChrome 完全対応 71Edge 完全対応 79Firefox 完全対応 65IE 未対応 なしOpera 完全対応 58Safari 未対応 なしWebView Android 完全対応 71Chrome Android 完全対応 71Firefox Android 完全対応 65Opera Android 完全対応 50Safari iOS 未対応 なしSamsung Internet Android 完全対応 10.0nodejs 完全対応 12.0.0
補足
完全対応 12.0.0
補足
補足 Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
supportedLocalesOfChrome 完全対応 71Edge 完全対応 79Firefox 完全対応 65IE 未対応 なしOpera 完全対応 58Safari 未対応 なしWebView Android 完全対応 71Chrome Android 完全対応 71Firefox Android 完全対応 65Opera Android 完全対応 50Safari iOS 未対応 なしSamsung Internet Android 完全対応 10.0nodejs 完全対応 13.0.0
完全対応 13.0.0
部分対応 12.0.0
補足
補足 Before version 13.0.0, only the locale data for en-US is available by default. To make full ICU (locale) data available for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.

凡例

完全対応  
完全対応
未対応  
未対応
実装ノートを参照してください。
実装ノートを参照してください。

関連項目