【JavaScript ECMAScript】Intl::Intl.RelativeTimeFormat.prototype.formatToPartsインスタンスメソッドの使い方
Intl.RelativeTimeFormat.prototype.formatToParts()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Intl.RelativeTimeFormat.prototype.formatToParts()メソッドは、指定された数値と単位に基づいて、相対的な時間表現を国際化された形式で部分に分解し、その各部分を表すオブジェクトの配列として返すメソッドです。
このメソッドが属するIntl.RelativeTimeFormatオブジェクトは、「2日前」や「3時間後」のように、現在時刻からの相対的な時間をユーザーの言語や地域に合わせた書式で整形するために用いられます。通常のformat()メソッドが整形された文字列全体を返すのに対し、formatToParts()メソッドは、その整形結果を数値、単位、区切り文字などの独立した要素に分割して提供します。
具体的には、第一引数に時間の量を表す数値(例: -3, 2)を、第二引数に時間の単位を表す文字列(例: "day", "hour", "second")を取ります。戻り値は、各部分のタイプ(type)と値(value)を持つオブジェクトの配列です。例えば、「3日前」という表現は、「3」が'integer'タイプ、「日」が'unit'タイプ、「前」が'literal'タイプといった形でそれぞれオブジェクトとして含まれます。
この機能により、開発者は表示される相対的な時間表現の各部分に対して、個別にスタイルを適用したり、特定の要素のみを強調表示したりするなど、よりきめ細やかなユーザーインターフェースの調整やアクセシビリティ対応が可能になります。国際化されたアプリケーションで、時間の表示に高度なカスタマイズや詳細な制御を必要とする場合に、非常に有用なメソッドです。
構文(syntax)
1const relativeTimeFormatter = new Intl.RelativeTimeFormat('en'); 2relativeTimeFormatter.formatToParts(-1, 'day');
引数(parameters)
value, unit
- value: number: フォーマットする相対的な時間を表す数値
- unit: 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year':
valueが表す時間の単位
戻り値(return)
Array<Object>
Intl.RelativeTimeFormat.prototype.formatToParts() メソッドは、指定された絶対時間と現在時間との相対的な差を、フォーマットされた文字列の各部分(数値、単位など)に分解したオブジェクトの配列を返します。