# General Translation Platform: formatRelativeTime
URL: https://generaltranslation.com/ru/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Форматирует значения относительного времени, например «несколько минут назад» или «через несколько дней». Справочник API для formatRelativeTime.

Форматирует значение относительного времени с явно указанной единицей времени по правилам конкретной локали в экземпляре [GT](/docs/platform/core/reference/gt-class/constructor). General Translation использует встроенный API `Intl.RelativeTimeFormat` для формирования выражений вроде «2 часа назад» или «через 3 дня».

## Обзор [#overview]

Вызовите `formatRelativeTime` у экземпляра [`GT`](/docs/platform/core/reference/gt-class/constructor), передав числовое значение, единицу времени и необязательный объект параметров. Отрицательное значение указывает на прошлое, положительное — на будущее. Метод возвращает отформатированную строку.

```typescript
const gt = new GT();

const formatted = gt.formatRelativeTime(-1, 'day', {
  locales: 'en-US',
  numeric: 'auto',
});
// "вчера"
```

Сигнатура:

```typescript
formatRelativeTime(
  value: number,
  unit: Intl.RelativeTimeFormatUnit,
  options?: { locales?: string | string[] } & Omit<Intl.RelativeTimeFormatOptions, 'locales'>
): string
```

*Примечание: `formatRelativeTime` выполняется локально с помощью `Intl.RelativeTimeFormat` и не требует ключа API. По умолчанию используется целевая локаль экземпляра, затем — исходная локаль и `en`. О форматировании без экземпляра `GT` см. автономную функцию [`formatRelativeTime`](/docs/platform/core/reference/utility-functions/formatting/format-relative-time).*

## Как это работает [#how-it-works]

* **Выбор локали.** Если `locales` не указаны, метод использует целевую локаль экземпляра, затем исходную локаль и `en`.
* **На базе Intl.** Форматирование выполняется с помощью встроенного в браузер [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat).
* **Значения по умолчанию.** По умолчанию для `numeric` используется `'auto'` (поэтому `-1 day` превращается во «вчера», а не в «1 день назад»), а для `style` — `'long'`.

## Параметры [#parameters]

| Параметр              | Описание                                                                                      | Тип                           | Необязательный | По умолчанию |
| --------------------- | --------------------------------------------------------------------------------------------- | ----------------------------- | -------------- | ------------ |
| [`value`](#value)     | Значение относительного времени (отрицательное — для прошлого, положительное — для будущего). | `number`                      | Нет            | —            |
| [`unit`](#unit)       | Единица времени.                                                                              | `Intl.RelativeTimeFormatUnit` | Нет            | —            |
| [`options`](#options) | Параметры форматирования.                                                                     | `object`                      | Да             | —            |

### `value` [#value]

**Тип** `number` · **Обязательно**

Значение относительного времени. Отрицательные значения указывают на прошлое, положительные — на будущее.

### `unit` [#unit]

**Тип** `Intl.RelativeTimeFormatUnit` · **обязательно**

Единица времени. Допускаются формы единственного и множественного числа: `'second'`/`'seconds'`, `'minute'`/`'minutes'`, `'hour'`/`'hours'`, `'day'`/`'days'`, `'week'`/`'weeks'`, `'month'`/`'months'`, `'quarter'`/`'quarters'` и `'year'`/`'years'`.

### `options` [#options]

**Тип** `{ locales?: string | string[] } & Omit<Intl.RelativeTimeFormatOptions, 'locales'>` · **Необязательно**

Параметры форматирования. В таблице перечислены распространённые параметры, доступные в опубликованных типах Ядра, и их фактические значения по умолчанию в Ядре. (Дополнительные сведения о стандарте и особенностях сред выполнения см. в [параметрах конструктора `Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#options)).

| Имя             | Описание                                | Тип                             | Необязательно | По умолчанию                           |
| --------------- | --------------------------------------- | ------------------------------- | ------------- | -------------------------------------- |
| `locales`       | Локали для форматирования.              | `string \| string[]`            | Да            | `targetLocale` → `sourceLocale` → `en` |
| `numeric`       | Всегда ли использовать числовой формат. | `'always' \| 'auto'`            | Да            | `'auto'`                               |
| `style`         | Длина результата.                       | `'long' \| 'short' \| 'narrow'` | Да            | `'long'`                               |
| `localeMatcher` | Алгоритм сопоставления локалей.         | `'best fit' \| 'lookup'`        | Да            | `'best fit'`                           |

Ядро изменяет исходное значение по умолчанию `numeric` с `'always'` на `'auto'`; остальные стандартные значения по умолчанию определяются `Intl.RelativeTimeFormat`.

## Возвращает [#returns]

**Тип** `string`

Строка относительного времени в отформатированном виде.

## Примеры [#examples]

```typescript
import { GT } from 'generaltranslation';

const gt = new GT();

// Прошедшее время
gt.formatRelativeTime(-2, 'hour', { locales: 'en-US' });
// Возвращает: "2 hours ago"

// Будущее время
gt.formatRelativeTime(3, 'day', { locales: 'fr-FR' });
// Возвращает: "dans 3 jours"

// С numeric: 'auto' (по умолчанию)
gt.formatRelativeTime(-1, 'day', { locales: 'en-US' });
// Возвращает: "yesterday"
```

## Заметки [#notes]

* По умолчанию используются значения `numeric: 'auto'` и `style: 'long'`.
* В основе используется `Intl.RelativeTimeFormat`.
* Чтобы автоматически выбирать единицу времени по `Date`, используйте [`formatRelativeTimeFromDate`](/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time-from-date).

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
