JavaScript

Intl.RelativeTimeFormat() コンストラクター


編集:2023.01.12 by T.A.

[Edge]。→

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

構文
new Intl.RelativeTimeFormat([locales[, options]])
表示例「」内のフォントは「MS ゴシック」
locales 省略可 言語タグを持つ文字列、またはそのような文字列の配列。→Intl:locales

¶以下の Unicode 拡張が使えるようです。

nu
numberingSystem
options 省略可。以下のプロパティと値を 1 組以上持つオブジェクト。
localeMatcher
ロケールの照合アルゴリズムを表す文字列。値は以下の何れか。
lookup
best fit (既定値)

Intl:マッチング アルゴリズム

numeric
数値表示の書式を表す文字列。値は以下の何れか。
DA=new Intl.RelativeTimeFormat(○○);
D=DA.format(new Date(□□);
always (既定値)

D: 「1 日前」('ja', {numeric:'always'}、-1, 'day')

D: 「0 日後」('ja', {numeric:'always'}、0, 'day')

D: 「1 日後」('ja', {numeric:'always'}、1, 'day')

D: 「in 1 day」('en', {numeric:'always'}、1, 'day')

D: 「in 2 days」('en', {numeric:'always'}、2, 'day')

auto 自動。数値は省略される場合が有る。

D: 「3 日前」('ja', {numeric:'auto'}、-3, 'day')

D: 「一昨日」('ja', {numeric:'auto'}、-2, 'day')

D: 「昨日」('ja', {numeric:'auto'}、-1, 'day')

D: 「今日」('ja', {numeric:'auto'}、0, 'day')

D: 「明日」('ja', {numeric:'auto'}、1, 'day')

D: 「明後日」('ja', {numeric:'auto'}、2, 'day')

D: 「3 日後」('ja', {numeric:'auto'}、3, 'day')

style
メッセージの長さを表す文字列。値は以下の何れか。
DA=new Intl.RelativeTimeFormat(○○);
D=DA.format(new Date(□□);
long 長め。(既定値)

D: 「1 日前」('ja', {style:'long'}、1, 'day')

D: 「1 day ago」('en', {style:'long'}、1, 'day')

D: 「1 month ago」('en', {style:'long'}、1, 'month')

short 短め。

D: 「1 日前」('ja', {style:'short'}、1, 'day')

D: 「1 day ago」('en', {style:'short'}、1, 'day')

D: 「1 mo. ago」('en', {style:'short'}、1, 'month')

narrow 狭い。

D: 「1日前」('ja', {style:'narrow'}、1, 'day')

D: 「1 day ago」('en', {style:'narrow'}、1, 'day')

D: 「1 mo. ago」('en', {style:'narrow'}、1, 'month')

short と同じこともある。

英語などでは複数形の表現できるようです。

numberingSystem
数値の文字体系を表す文字列。値:→Numbering System
値例:
DA=new Intl.RelativeTimeFormat('ja', {numberingSystem:'○○'});
D=DA.format(-1, 'day');
arab アラビア文字

D: 「١ 日前

fullwide 全角

D: 「1 日前

hanidec 漢字。

D: 「一 日前

latn ラテン文字

D: 「1 日前

localesのUnicode 拡張の nu からも利用できるようです。

戻り値

オブジェクト。

DA=new Intl.RelativeTimeFormat('ja');  //日本語。
D=DA.format(-1, 'day');  //-1で日付。
	//=[string]:1 日前
DA=new Intl.RelativeTimeFormat('ja', {numeric:'auto'});  //日本語、数値:auto。
D=DA.format(-1, 'day');  //-1で日付。
	//=[string]:昨日
DA=new Intl.RelativeTimeFormat('ja', {style:'short'});  //日本語、スタイル:短め。
D=DA.format(-1, 'day');  //-1で日付。
	//=[string]:1 日前
DA=new Intl.RelativeTimeFormat('ja', {style:'narrow'});  //日本語、スタイル:超短め。
D=DA.format(-1, 'day');  //-1で日付。
	//=[string]:1日前
DA=new Intl.RelativeTimeFormat('en', {style:'long'});  //英語、スタイル:長め。
D=DA.format(1, 'month');  //1で月。
	//=[string]:in 1 month
DA=new Intl.RelativeTimeFormat('en', {style:'short'});  //英語、スタイル:短め。
D=DA.format(1, 'month');  //1で月。
	//=[string]:in 1 mo.
DA=new Intl.RelativeTimeFormat('en', {style:'narrow'});  //英語、スタイル:超短め。
D=DA.format(1, 'month');  //1で月。
	//=[string]:in 1 mo.

DA=new Intl.RelativeTimeFormat('ja-u-nu-hanidec');  //日本語、数値を漢字で
D=DA.format(-1, 'day');  //-1で日。
	//=[string]:一 日前

format()


テスト