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 September 2020.
Intl.RelativeTimeFormat()
コンストラクターは、 Intl.RelativeTimeFormat
オブジェクトを生成します。
構文
new Intl.RelativeTimeFormat([locales[, options]])
引数
locales
省略可-
BCP 47 言語タグを持つ文字列か、そのような文字列の配列です。
locales
引数の一般的な形式と解釈については、 Intl のページを参照してください。 options
省略可-
以下のプロパティのうち一部またはすべてを持つオブジェクトです。
localeMatcher
-
使用するロケールの一致アルゴリズムです。使用可能な値は "
lookup
" および "best fit
" で、既定値は "best fit
" です。このオプションの詳細は、 Intl のページを参照してください。 numeric
-
メッセージを出力する書式です。使用可能な値は次の通りです。
- "
always
" (既定値、例えば1 日前
) - "
auto
" (例えば昨日
)。 "auto
" にすると、出力に常に数値が入るとは限りません。
- "
style
-
国際化されたメッセージの長さです。使用可能な値は次の通りです。
- "
long
" (既定値、例えばin 1 month
) - "
short
" (例えばin 1 mo.
) - "
narrow
" (例えばin 1 mo.
) narrow スタイルは同じロケールでは short スタイルと同様になることがあります。
- "
例
基本的な書式の使い方
以下の例は、英語を使用した相対時間のフォーマッターの生成方法を示しています。
// 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"
});
// 負の値 (-1) を使った相対時間のフォーマット
rtf.format(-1, "day");
// > "1 day ago"
// 正の値 (1) を使った相対時間のフォーマット
rtf.format(1, "day");
// > "in 1 day"
auto オプションの使用
numeric:auto
オプションが渡された場合は、 yesterday
や tomorrow
の文字列が 1 day ago
や in 1 day
の代わりに生成されます。これにより、出力に数値が含まれなくなることがあります。
// Create a relative time formatter in your locale
// with numeric: "auto" option value passed in.
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
// Format relative time using negative value (-1).
rtf.format(-1, "day");
// > "yesterday"
// Format relative time using positive day unit (1).
rtf.format(1, "day");
// > "tomorrow"
仕様書
Specification |
---|
ECMAScript Internationalization API Specification # sec-intl-relativetimeformat-constructor |
ブラウザーの互換性
BCD tables only load in the browser