# General Translation Platform: formatRelativeTimeFromDate
URL: https://generaltranslation.com/fr/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time-from-date.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Met en forme un temps relatif à partir d’une date comparée à l’heure actuelle ou à une autre date. Référence d’API de formatRelativeTimeFromDate.

Met en forme une chaîne de temps relatif à partir d’un `Date`, en sélectionnant automatiquement l’unité la plus appropriée, sur une instance de [GT](/docs/platform/core/reference/gt-class/constructor). General Translation compare la date à une date de base (l’heure actuelle par défaut) et génère des expressions comme « il y a 2 heures » ou « dans 3 jours ».

## Vue d’ensemble [#overview]

Appelez `formatRelativeTimeFromDate` sur une instance de [`GT`](/docs/platform/core/reference/gt-class/constructor) avec la `Date` cible et, éventuellement, un objet d’options. La méthode renvoie la chaîne formatée en choisissant l’unité la plus adaptée à l’écart de temps.

```typescript
const gt = new GT();
const pastDate = new Date(Date.now() - 7200000); // il y a 2 heures

const formatted = gt.formatRelativeTimeFromDate(pastDate, {
  locales: 'en-US',
});
// "il y a 2 heures"
```

Signature :

```typescript
formatRelativeTimeFromDate(
  date: Date,
  options?: {
    locales?: string | string[];
    baseDate?: Date;
  } & Omit<Intl.RelativeTimeFormatOptions, 'locales'>
): string
```

*Remarque : `formatRelativeTimeFromDate` s’exécute localement à l’aide de `Intl.RelativeTimeFormat` et ne nécessite pas de clé d’API. Il utilise par défaut le paramètre régional cible de l’instance, puis se replie sur le paramètre régional source et `en`. Pour le formatage sans instance `GT`, consultez la version autonome de [`formatRelativeTimeFromDate`](/docs/platform/core/reference/utility-functions/formatting/format-relative-time-from-date).*

## Fonctionnement [#how-it-works]

* **Sélection automatique de l’unité.** La méthode calcule la différence entre `date` et `baseDate` et choisit l’unité la plus appropriée (secondes, minutes, heures, jours, etc.).
* **Date de base.** La comparaison s’effectue par rapport à `baseDate`, qui vaut par défaut `new Date()` (l’heure actuelle).
* **Résolution du paramètre régional.** Lorsque `locales` est omis, la méthode utilise le paramètre régional cible de l’instance, puis le paramètre régional source et `en`.
* **Valeurs par défaut.** `numeric` vaut par défaut `'auto'` et `style` vaut par défaut `'long'`.

## Paramètres [#parameters]

| Paramètre             | Description                                  | Type     | Facultatif | Par défaut |
| --------------------- | -------------------------------------------- | -------- | ---------- | ---------- |
| [`date`](#date)       | La date à formater par rapport à `baseDate`. | `Date`   | Non        | —          |
| [`options`](#options) | Configuration de formatage.                  | `object` | Oui        | —          |

### `date` [#date]

**Type** `Date` · **Obligatoire**

La date à formater par rapport à `baseDate`.

### `options` [#options]

**Type** `{ locales?: string | string[]; baseDate?: Date } & Omit<Intl.RelativeTimeFormatOptions, 'locales'>` · **Facultatif**

Configuration de formatage. Le tableau répertorie `baseDate`, `locales` et les options courantes exposées par les types Core publiés, ainsi que leurs valeurs par défaut effectives dans Core. (Consultez les [options du constructeur `Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#options) pour obtenir des détails supplémentaires sur les standards et propres à l’environnement d’exécution).

| Nom             | Description                                                         | Type                            | Facultatif | Par défaut                             |
| --------------- | ------------------------------------------------------------------- | ------------------------------- | ---------- | -------------------------------------- |
| `locales`       | Paramètres régionaux utilisés pour le formatage.                    | `string \| string[]`            | Oui        | `targetLocale` → `sourceLocale` → `en` |
| `baseDate`      | La date de base pour la comparaison.                                | `Date`                          | Oui        | `new Date()`                           |
| `numeric`       | Indique s’il faut toujours utiliser un résultat numérique.          | `'always' \| 'auto'`            | Oui        | `'auto'`                               |
| `style`         | La longueur du résultat.                                            | `'long' \| 'short' \| 'narrow'` | Oui        | `'long'`                               |
| `localeMatcher` | L’algorithme de correspondance des paramètres régionaux à utiliser. | `'best fit' \| 'lookup'`        | Oui        | `'best fit'`                           |

`baseDate` est un champ propre à Core et n’est pas transmis à `Intl.RelativeTimeFormat`. Core remplace également la valeur par défaut amont de `numeric` de `'always'` par `'auto'`.

## Returns [#returns]

**Type** `string`

La chaîne de temps relatif au format, par exemple « il y a 2 heures » ou « dans 3 jours ».

## Exemples [#examples]

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

const gt = new GT();

const now = new Date();

// Sélectionne automatiquement "hours"
const twoHoursAgo = new Date(now.getTime() - 7200000);
gt.formatRelativeTimeFromDate(twoHoursAgo, { locales: 'en-US', baseDate: now });
// Retourne : "2 hours ago"

// Sélectionne automatiquement "days"
const threeDaysLater = new Date(now.getTime() + 259200000);
gt.formatRelativeTimeFromDate(threeDaysLater, { locales: 'fr-FR', baseDate: now });
// Retourne : "dans 3 jours"
```

## Remarques [#notes]

* Sélectionne automatiquement l’unité la plus appropriée en fonction de l’écart de temps.
* Utilise par défaut `numeric: 'auto'` et `style: 'long'`.
* Si `baseDate` n’est pas fourni, la valeur par défaut est `new Date()`.
* Pour formater explicitement une valeur et une unité, utilisez [`formatRelativeTime`](/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time).

## Sitemap

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