# generaltranslation: General Translation Core SDK: formatRelativeTime URL: https://generaltranslation.com/ru/docs/core/functions/formatting/format-relative-time.mdx --- title: formatRelativeTime description: Автономная функция для форматирования значений относительного времени по правилам локали --- ## Обзор Автономная функция `formatRelativeTime` форматирует значение относительного времени с явно указанной единицей измерения в соответствии с правилами, принятыми для данной локали, без необходимости создавать экземпляр GT. ```typescript import { formatRelativeTime } from 'generaltranslation'; const formatted = formatRelativeTime(-1, 'day', { locales: 'en-US', numeric: 'auto' }); // Возвращает: "yesterday" ``` ## Справка ### Параметры | Имя | Тип | Описание | | --------- | ----------------------------- | -------------------------------------------------------------------------------------------- | | `value` | `number` | Значение относительного времени (отрицательное — для прошлого, положительное — для будущего) | | `unit` | `Intl.RelativeTimeFormatUnit` | Единица времени (`'second'`, `'minute'`, `'hour'`, `'day'`, `'week'`, `'month'`, `'year'`) | | `options` | `object` | Конфигурация форматирования | ### Параметры | Имя | Тип | Описание | | ---------------- | ------------------------------- | -------------------------------------------------------------- | | `locales` | `string \| string[]` | **Обязательно.** Локали для форматирования | | `numeric?` | `'always' \| 'auto'` | Использовать ли всегда числовой вывод. По умолчанию — `'auto'` | | `style?` | `'long' \| 'short' \| 'narrow'` | Длина выходной строки. По умолчанию — `'long'` | | `localeMatcher?` | `'best fit' \| 'lookup'` | Алгоритм сопоставления локали | ### Возвращает `string` — строка с отформатированным относительным временем. *** ## Пример ### Основное использование ```typescript copy import { formatRelativeTime } from 'generaltranslation'; // Прошедшее время console.log(formatRelativeTime(-2, 'hour', { locales: 'en-US' })); // Вывод: "2 hours ago" // Будущее время console.log(formatRelativeTime(3, 'day', { locales: 'en-US' })); // Вывод: "in 3 days" // С numeric: 'auto' (по умолчанию) console.log(formatRelativeTime(-1, 'day', { locales: 'en-US' })); // Вывод: "yesterday" ``` ### Стили форматирования ```typescript copy import { formatRelativeTime } from 'generaltranslation'; // Длинный стиль (по умолчанию) console.log(formatRelativeTime(-2, 'day', { locales: 'en-US', style: 'long' })); // Вывод: "2 days ago" // Короткий стиль console.log(formatRelativeTime(-2, 'day', { locales: 'en-US', style: 'short' })); // Вывод: "2 days ago" (может быть сокращено в некоторых локалях) // Узкий стиль console.log(formatRelativeTime(-2, 'day', { locales: 'en-US', style: 'narrow' })); // Вывод: "2d ago" ``` ### Несколько локалей ```typescript copy import { formatRelativeTime } from 'generaltranslation'; const locales = ['en-US', 'fr-FR', 'ja-JP', 'de-DE']; locales.forEach(locale => { console.log(`${locale}: ${formatRelativeTime(-3, 'hour', { locales: locale })}`); }); // Вывод: // en-US: 3 hours ago // fr-FR: il y a 3 heures // ja-JP: 3 時間前 // de-DE: vor 3 Stunden ``` *** ## Примечания * По умолчанию используются `numeric: 'auto'` и `style: 'long'` * При `numeric: 'auto'` значения вроде `-1 day` дают «вчера» вместо «1 день назад» * Под капотом используется [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat) * Для повышения производительности результаты внутренне кэшируются для повторяющихся сочетаний локали и параметров ## Следующие шаги * См. [`formatRelativeTimeFromDate`](/docs/core/functions/formatting/format-relative-time-from-date), чтобы автоматически выбирать единицу измерения на основе Date * См. [`formatDateTime`](/docs/core/functions/formatting/format-date-time) для автономного форматирования даты/времени * См. метод класса GT [`formatRelativeTime`](/docs/core/class/methods/formatting/format-relative-time) для использования с экземпляром