# General Translation Platform: formatRelativeTimeFromDate URL: https://generaltranslation.com/ru/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time-from-date.mdx --- title: formatRelativeTimeFromDate description: Форматирует строку относительного времени на основе даты относительно текущего времени или другой даты. Справка по API для formatRelativeTimeFromDate. --- Форматирует строку относительного времени из `Date`, автоматически выбирая наиболее подходящую единицу времени, в экземпляре [GT](/docs/platform/core/reference/gt-class/constructor). General Translation сравнивает дату с базовой датой (по умолчанию это текущее время) и формирует фразы вроде "2 часа назад" или "через 3 дня". ## Обзор [#overview] Вызовите `formatRelativeTimeFromDate` для экземпляра [`GT`](/docs/platform/core/reference/gt-class/constructor), передав целевую `Date` и необязательный объект параметров. Метод вернёт отформатированную строку, автоматически выбрав единицу времени, которая лучше всего соответствует разнице во времени. ```typescript const gt = new GT(); const pastDate = new Date(Date.now() - 7200000); // 2 часа назад const formatted = gt.formatRelativeTimeFromDate(pastDate, { locales: 'en-US', }); // "2 часа назад" ``` Сигнатура: ```typescript formatRelativeTimeFromDate( date: Date, options?: { locales?: string | string[]; baseDate?: Date; } & Omit ): string ``` *Примечание: `formatRelativeTimeFromDate` выполняется локально с помощью `Intl.RelativeTimeFormat` и не требует API-ключа. Если `locales` не указаны, используется локаль рендеринга экземпляра `GT`. Чтобы форматировать без экземпляра `GT`, см. отдельную функцию [`formatRelativeTimeFromDate`](/docs/platform/core/reference/utility-functions/formatting/format-relative-time-from-date).* ## Как это работает [#how-it-works] * **Автоматический выбор единицы времени.** Метод вычисляет разницу между `date` и `baseDate` и выбирает наиболее подходящую единицу времени (секунды, минуты, часы, дни и т. д.). * **Базовая дата.** Сравнение выполняется относительно `baseDate`, которое по умолчанию равно `new Date()` (текущему времени). * **Определение локали.** Если `locales` не указано, метод использует локали рендеринга этого экземпляра. * **Значения по умолчанию.** Для `numeric` по умолчанию используется `'auto'`, а для `style` — `'long'`. ## Параметры [#parameters] | Параметр | Описание | Тип | Необязательный | По умолчанию | | --------------------- | ------------------------------------------------ | -------- | -------------- | ------------ | | [`date`](#date) | Дата для форматирования относительно `baseDate`. | `Date` | Нет | — | | [`options`](#options) | Параметры форматирования. | `object` | Да | — | ### `date` [#date] **Тип** `Date` · **Обязательно** Дата, которую нужно форматировать относительно `baseDate`. ### `options` [#options] **Тип** `{ locales?: string | string[]; baseDate?: Date } & Omit` · **Необязательно** Параметры форматирования: | Имя | Описание | Тип | Необязательно | По умолчанию | | --------------- | -------------------------------------------------------------------------------------- | ------------------------------- | ------------- | ----------------- | | `locales` | Локали для форматирования. Если не указано, используются локали рендеринга экземпляра. | `string \| string[]` | Да | локали экземпляра | | `baseDate` | Базовая дата для сравнения. | `Date` | Да | `new Date()` | | `numeric` | Использовать ли всегда числовой формат. | `'always' \| 'auto'` | Да | `'auto'` | | `style` | Длина результата. | `'long' \| 'short' \| 'narrow'` | Да | `'long'` | | `localeMatcher` | Используемый алгоритм сопоставления локалей. | `'best fit' \| 'lookup'` | Да | `'best fit'` | ## Возвращает [#returns] **Тип** `string` Отформатированная строка относительного времени, например: "2 часа назад" или "через 3 дня". ## Примеры [#examples] ```typescript import { GT } from 'generaltranslation'; const gt = new GT(); const now = new Date(); // Автоматически выбирает "hours" const twoHoursAgo = new Date(now.getTime() - 7200000); gt.formatRelativeTimeFromDate(twoHoursAgo, { locales: 'en-US', baseDate: now }); // Возвращает: "2 hours ago" // Автоматически выбирает "days" const threeDaysLater = new Date(now.getTime() + 259200000); gt.formatRelativeTimeFromDate(threeDaysLater, { locales: 'fr-FR', baseDate: now }); // Возвращает: "dans 3 jours" ``` ## Заметки [#notes] * Автоматически выбирает наиболее подходящую единицу времени в зависимости от разницы во времени. * По умолчанию используются `numeric: 'auto'` и `style: 'long'`. * Если `baseDate` не указана, используется `new Date()`. * Для явного форматирования значения и единицы времени используйте [`formatRelativeTime`](/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time).