# generaltranslation: General Translation Core SDK: formatRelativeTimeFromDate URL: https://generaltranslation.com/ja/docs/core/functions/formatting/format-relative-time-from-date.mdx --- title: formatRelativeTimeFromDate description: Date から相対時間を整形し、最適な単位を自動的に選択するスタンドアロン関数 --- ## 概要 スタンドアロンの `formatRelativeTimeFromDate` 関数は、`Date` から相対時間の文字列を生成し、最も適切な単位 (秒、分、時間、日、週、か月、または年) を自動的に選択します。 ```typescript import { formatRelativeTimeFromDate } from 'generaltranslation'; const pastDate = new Date(Date.now() - 7200000); // 2時間前 const formatted = formatRelativeTimeFromDate(pastDate, { locales: 'en-US', baseDate: new Date() }); // 戻り値: "2 hours ago" ``` ## リファレンス ### パラメータ | 名前 | 型 | 説明 | | --------- | -------- | ----------------------------- | | `date` | `Date` | `baseDate` を基準として相対的に書式設定する日付 | | `options` | `object` | 書式設定の設定項目 | ### オプション | 名前 | 型 | 説明 | | ---------------- | ------------------------------- | ------------------------------------------- | | `locales` | `string \| string[]` | **必須。** 書式設定に使用するロケール | | `baseDate?` | `Date` | 比較の基準となる日付です。デフォルトは `new Date()` です | | `numeric?` | `'always' \| 'auto'` | 常に数値形式の出力を使用するかどうかを指定します。デフォルトは `'auto'` です | | `style?` | `'long' \| 'short' \| 'narrow'` | 出力の長さを指定します。デフォルトは `'long'` です | | `localeMatcher?` | `'best fit' \| 'lookup'` | 使用するロケール一致アルゴリズムを指定します | ### 戻り値 `string` - 書式設定された相対時間の文字列 (例: 「2時間前」、「3日後」) 。 *** ## 例 ### 基本的な使い方 ```typescript copy import { formatRelativeTimeFromDate } from 'generaltranslation'; const now = new Date(); // 2時間前 const pastDate = new Date(now.getTime() - 7200000); console.log(formatRelativeTimeFromDate(pastDate, { locales: 'en-US', baseDate: now })); // 出力: "2 hours ago" // 3日後 const futureDate = new Date(now.getTime() + 259200000); console.log(formatRelativeTimeFromDate(futureDate, { locales: 'en-US', baseDate: now })); // 出力: "in 3 days" ``` ### 複数のロケール ```typescript copy import { formatRelativeTimeFromDate } from 'generaltranslation'; const pastDate = new Date(Date.now() - 86400000); // 約1日前 const now = new Date(); const locales = ['en-US', 'fr-FR', 'ja-JP', 'de-DE']; locales.forEach(locale => { console.log(`${locale}: ${formatRelativeTimeFromDate(pastDate, { locales: locale, baseDate: now })}`); }); // 出力: // en-US: yesterday // fr-FR: hier // ja-JP: 昨日 // de-DE: gestern ``` *** ## 注意事項 * `date` と `baseDate` の差に応じて、最適な単位を自動的に選択します * デフォルトは `numeric: 'auto'` と `style: 'long'` です * `baseDate` を指定しない場合は `new Date()` が使われます — サーバーでレンダリングされるアプリでは、これによって hydration の不一致が発生する可能性があるため注意してください * 内部的には [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat) を使用しています ## 次のステップ * 値と単位を明示的に指定する書式設定については [`formatRelativeTime`](/docs/core/functions/formatting/format-relative-time) を参照してください * スタンドアロンの日付/時刻の書式設定については [`formatDateTime`](/docs/core/functions/formatting/format-date-time) を参照してください * インスタンスを使った使用方法については、GT クラスの [`formatRelativeTimeFromDate`](/docs/core/class/methods/formatting/format-relative-time-from-date) を参照してください