# General Translation Platform: formatRelativeTimeFromDate
URL: https://generaltranslation.com/it/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time-from-date.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Formatta il tempo relativo di una data rispetto all'ora corrente o a un'altra data. Riferimento API per formatRelativeTimeFromDate.

Formatta una stringa di tempo relativo a partire da un `Date`, selezionando automaticamente l&#39;unità più appropriata, in un&#39;istanza di [GT](/docs/platform/core/reference/gt-class/constructor). General Translation confronta la data con una data di riferimento (per impostazione predefinita, l&#39;ora corrente) e produce espressioni come &quot;2 ore fa&quot; o &quot;tra 3 giorni&quot;.

## Panoramica [#overview]

Chiama `formatRelativeTimeFromDate` su un&#39;istanza di [`GT`](/docs/platform/core/reference/gt-class/constructor), passando la `Date` di destinazione e, facoltativamente, un oggetto options. Restituisce una stringa formattata, scegliendo l&#39;unità più adatta in base alla differenza di tempo.

```typescript
const gt = new GT();
const pastDate = new Date(Date.now() - 7200000); // 2 ore fa

const formatted = gt.formatRelativeTimeFromDate(pastDate, {
  locales: 'en-US',
});
// "2 ore fa"
```

Firma:

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

*Nota: `formatRelativeTimeFromDate` viene eseguito localmente tramite `Intl.RelativeTimeFormat` e non richiede una chiave API. Per impostazione predefinita usa l&#39;impostazione regionale di destinazione dell&#39;istanza, quindi usa come fallback l&#39;impostazione regionale sorgente e `en`. Per la formattazione senza un&#39;istanza `GT`, consulta la versione autonoma di [`formatRelativeTimeFromDate`](/docs/platform/core/reference/utility-functions/formatting/format-relative-time-from-date).*

## Come funziona [#how-it-works]

* **Selezione automatica dell&#39;unità.** Il metodo calcola la differenza tra `date` e `baseDate` e sceglie l&#39;unità più adatta (secondi, minuti, ore, giorni e così via).
* **Data di riferimento.** Il confronto viene effettuato rispetto a `baseDate`, che per impostazione predefinita corrisponde a `new Date()` (l&#39;ora corrente).
* **Risoluzione dell&#39;impostazione regionale.** Quando `locales` viene omesso, il metodo usa l&#39;impostazione regionale di destinazione dell&#39;istanza, quindi l&#39;impostazione regionale sorgente e `en`.
* **Valori predefiniti.** Per impostazione predefinita, `numeric` è `'auto'` e `style` è `'long'`.

## Parametri [#parameters]

| Parametro             | Descrizione                                  | Tipo     | Facoltativo | Predefinito |
| --------------------- | -------------------------------------------- | -------- | ----------- | ----------- |
| [`date`](#date)       | La data da formattare rispetto a `baseDate`. | `Date`   | No          | —           |
| [`options`](#options) | Configurazione di formattazione.             | `object` | Sì          | —           |

### `date` [#date]

**Tipo** `Date` · **Obbligatorio**

La data da formattare rispetto a `baseDate`.

### `options` [#options]

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

Configurazione di formattazione. La tabella elenca `baseDate`, `locales` e le opzioni comuni esposte dai tipi pubblici di Core, con i relativi valori predefiniti effettivi di Core. (Consulta le [opzioni del costruttore `Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#options) per ulteriori dettagli standard e specifici del runtime).

| Nome            | Descrizione                                                              | Tipo                            | Facoltativo | Predefinito                            |
| --------------- | ------------------------------------------------------------------------ | ------------------------------- | ----------- | -------------------------------------- |
| `locales`       | Le impostazioni regionali da usare per la formattazione.                 | `string \| string[]`            | Sì          | `targetLocale` → `sourceLocale` → `en` |
| `baseDate`      | La data di riferimento per il confronto.                                 | `Date`                          | Sì          | `new Date()`                           |
| `numeric`       | Se usare sempre un formato numerico.                                     | `'always' \| 'auto'`            | Sì          | `'auto'`                               |
| `style`         | La lunghezza dell&#39;output.                                            | `'long' \| 'short' \| 'narrow'` | Sì          | `'long'`                               |
| `localeMatcher` | L&#39;algoritmo di corrispondenza delle impostazioni regionali da usare. | `'best fit' \| 'lookup'`        | Sì          | `'best fit'`                           |

`baseDate` è un campo esclusivo di Core e non viene passato a `Intl.RelativeTimeFormat`. Core modifica inoltre il valore predefinito upstream di `numeric` da `'always'` a `'auto'`.

## Restituisce [#returns]

**Tipo** `string`

La stringa formattata che rappresenta il tempo relativo, ad esempio &quot;2 ore fa&quot; o &quot;tra 3 giorni&quot;.

## Esempi [#examples]

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

const gt = new GT();

const now = new Date();

// Seleziona automaticamente "hours"
const twoHoursAgo = new Date(now.getTime() - 7200000);
gt.formatRelativeTimeFromDate(twoHoursAgo, { locales: 'en-US', baseDate: now });
// Restituisce: "2 hours ago"

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

## Note [#notes]

* Seleziona automaticamente l&#39;unità più adatta in base alla differenza di tempo.
* Per impostazione predefinita, usa `numeric: 'auto'` e `style: 'long'`.
* Se `baseDate` non viene fornito, il valore predefinito è `new Date()`.
* Per formattare esplicitamente valore + unità, usa [`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.
