# General Translation Platform: formatRelativeTimeFromDate
URL: https://generaltranslation.com/fr/docs/platform/core/reference/utility-functions/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 sans instance GT. Référence API de formatRelativeTimeFromDate.

[`formatRelativeTimeFromDate`](/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time-from-date) est une fonction utilitaire autonome de la bibliothèque Core de General Translation qui met en forme une chaîne exprimant un temps relatif à partir d’un objet `Date`, en sélectionnant automatiquement l’unité la plus appropriée (secondes, minutes, heures, jours, semaines, mois ou années).

## Aperçu [#overview]

Importez `formatRelativeTimeFromDate` directement depuis `generaltranslation` et appelez cette fonction avec une valeur `Date` et un objet d’options. Elle ne nécessite ni clé API ni instance de [GT](/docs/platform/core/reference/gt-class/constructor). Pour un formatage basé sur une instance qui hérite du paramètre régional de l’instance, utilisez plutôt la méthode [`formatRelativeTimeFromDate`](/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time-from-date) sur une instance de [`GT`](/docs/platform/core/reference/gt-class/constructor). Pour formater explicitement vous-même une valeur et une unité, utilisez [`formatRelativeTime`](/docs/platform/core/reference/utility-functions/formatting/format-relative-time).

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

const pastDate = new Date(Date.now() - 7200000); // Il y a 2 heures
const formatted = formatRelativeTimeFromDate(pastDate, {
  locales: 'en-US',
  baseDate: new Date(),
});
// Retourne : "2 hours ago"
```

Signature :

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

## Fonctionnement [#how-it-works]

* **Sélection de l’unité.** Sélectionne automatiquement l’unité la plus adaptée en fonction de l’écart entre `date` et `baseDate`.
* **API sous-jacente.** S’appuie sur [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat).
* **Mode numérique.** Utilise par défaut `numeric: 'auto'` et `style: 'long'`.
* **Date de base par défaut.** Si `baseDate` n’est pas fourni, la valeur par défaut est `new Date()`. Attention, cela peut provoquer des incohérences d’hydratation dans les applications avec rendu côté serveur.
* **Résolution du paramètre régional.** Si `locales` est omis, la bibliothèque utilise le paramètre régional par défaut, `en`.

## 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, y compris le ou les paramètres régionaux cibles et la date de référence pour la comparaison. | `{ locales?: string \| string[] } & Omit<Intl.RelativeTimeFormatOptions, 'locales'> & { baseDate?: Date }` | Oui        | `{}`       |

### `date` [#date]

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

La `Date` à formater par rapport à `baseDate`.

### `options` [#options]

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

Configuration de formatage. Le tableau répertorie `baseDate`, `locales` et les options courantes exposées par les types Core publiés, avec 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 les spécificités du runtime).

| Propriété       | Description                                                         | Type                            | Facultatif | Par défaut   |
| --------------- | ------------------------------------------------------------------- | ------------------------------- | ---------- | ------------ |
| `locales`       | Paramètre(s) régional(aux) à utiliser pour la mise en forme.        | `string \| string[]`            | Oui        | `en`         |
| `baseDate`      | La date de référence pour la comparaison.                           | `Date`                          | Oui        | `new Date()` |
| `numeric`       | Indique s’il faut toujours utiliser un format 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 modifie également la valeur par défaut amont de `numeric`, de `'always'` à `'auto'`.

## Retourne [#returns]

**Type** `string`

La chaîne de caractères de temps relatif formatée (par exemple, « il y a 2 heures », « dans 3 jours »).

## Exemples [#examples]

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

const now = new Date();

// il y a 2 heures
const pastDate = new Date(now.getTime() - 7200000);
console.log(formatRelativeTimeFromDate(pastDate, {
  locales: 'en-US',
  baseDate: now,
}));
// Sortie : "2 hours ago"

// dans 3 jours
const futureDate = new Date(now.getTime() + 259200000);
console.log(formatRelativeTimeFromDate(futureDate, {
  locales: 'en-US',
  baseDate: now,
}));
// Sortie : "in 3 days"
```

```typescript
// Plusieurs paramètres régionaux
const pastDate = new Date(Date.now() - 86400000); // ~il y a 1 jour
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,
  })}`);
});
// Résultat :
// en-US: yesterday
// fr-FR: hier
// ja-JP: 昨日
// de-DE: gestern
```

## Remarques [#notes]

* Sélectionne automatiquement l’unité la plus appropriée en fonction de l’écart entre `date` et `baseDate`.
* Utilise par défaut `numeric: 'auto'` et `style: 'long'`.
* Si `baseDate` n’est pas fourni, la valeur par défaut est `new Date()` — sachez que cela peut entraîner des incohérences d’hydratation dans les applications avec rendu côté serveur.
* Utilise [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat) en interne.

## Sitemap

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