Intl.RelativeTimeFormat

Intl.RelativeTimeFormat オブジェクトは言語に依存の相対時間の書式化を可能にします。

コンストラクター

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

静的メソッド

Intl.RelativeTimeFormat.supportedLocalesOf()
指定されたロケールのうち、実行時の既定のロケールにフォールバックせずに対応されるものを配列に収めて返します。

インスタンスメソッド

Intl.RelativeTimeFormat.prototype.format()
value および unit を、指定された 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 の定義
第 4 段階

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
RelativeTimeFormatChrome 完全対応 71Edge 完全対応 79Firefox 完全対応 65IE 未対応 なしOpera 完全対応 58Safari 完全対応 14WebView Android 完全対応 71Chrome Android 完全対応 71Firefox Android 完全対応 65Opera Android 完全対応 50Safari iOS 完全対応 14Samsung 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 完全対応 14WebView Android 完全対応 71Chrome Android 完全対応 71Firefox Android 完全対応 65Opera Android 完全対応 50Safari iOS 完全対応 14Samsung 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 完全対応 14WebView Android 完全対応 71Chrome Android 完全対応 71Firefox Android 完全対応 65Opera Android 完全対応 50Safari iOS 完全対応 14Samsung 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 完全対応 14WebView Android 完全対応 71Chrome Android 完全対応 71Firefox Android 未対応 なしOpera Android 完全対応 50Safari iOS 完全対応 14Samsung 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 完全対応 14WebView Android 完全対応 71Chrome Android 完全対応 71Firefox Android 完全対応 65Opera Android 完全対応 50Safari iOS 完全対応 14Samsung 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 完全対応 14WebView Android 完全対応 71Chrome Android 完全対応 71Firefox Android 完全対応 65Opera Android 完全対応 50Safari iOS 完全対応 14Samsung 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.

凡例

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

関連情報