# General Translation Platform: formatRelativeTimeFromDate
URL: https://generaltranslation.com/it/docs/platform/core/reference/utility-functions/formatting/format-relative-time-from-date.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Formatta il tempo relativo a partire da una data senza un'istanza GT. Riferimento API per formatRelativeTimeFromDate.

[`formatRelativeTimeFromDate`](/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time-from-date) è una funzione di utilità autonoma della libreria core di General Translation che formatta una stringa di tempo relativo a partire da un `Date`, selezionando automaticamente l&#39;unità più appropriata (secondi, minuti, ore, giorni, settimane, mesi o anni).

## Panoramica [#overview]

Importa `formatRelativeTimeFromDate` direttamente da `generaltranslation` e chiamalo con un `Date` e un oggetto options. Non richiede una chiave API né un&#39;istanza di [GT](/docs/platform/core/reference/gt-class/constructor). Per una formattazione basata su un&#39;istanza che eredita l&#39;impostazione regionale dell&#39;istanza, usa invece il metodo [`formatRelativeTimeFromDate`](/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time-from-date) su un&#39;istanza di [`GT`](/docs/platform/core/reference/gt-class/constructor). Per formattare direttamente un valore esplicito e un&#39;unità, usa [`formatRelativeTime`](/docs/platform/core/reference/utility-functions/formatting/format-relative-time).

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

const pastDate = new Date(Date.now() - 7200000); // 2 ore fa
const formatted = formatRelativeTimeFromDate(pastDate, {
  locales: 'en-US',
  baseDate: new Date(),
});
// Returns: "2 hours ago"
```

Firma:

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

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

* **Selezione dell&#39;unità.** Seleziona automaticamente l&#39;unità più adatta in base alla differenza tra `date` e `baseDate`.
* **API sottostante.** Usa internamente [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat).
* **Modalità numerica.** Per impostazione predefinita usa `numeric: 'auto'` e `style: 'long'`.
* **Valore predefinito della data di riferimento.** Quando `baseDate` non viene fornita, il valore predefinito è `new Date()`. Tieni presente che questo può causare incongruenze di idratazione nelle app con rendering lato server.
* **Risoluzione dell&#39;impostazione regionale.** Quando `locales` viene omesso, viene usata come fallback l&#39;impostazione regionale predefinita della libreria, `en`.

## Parametri [#parameters]

| Parametro             | Descrizione                                                                                                                   | Tipo                                                                                                       | Facoltativo | Predefinito |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ----------- | ----------- |
| [`date`](#date)       | La data da formattare rispetto a `baseDate`.                                                                                  | `Date`                                                                                                     | No          | —           |
| [`options`](#options) | Configurazione di formattazione, incluse le impostazioni regionali di destinazione e la data di riferimento per il confronto. | `{ locales?: string \| string[] } & Omit<Intl.RelativeTimeFormatOptions, 'locales'> & { baseDate?: Date }` | Sì          | `{}`        |

### `date` [#date]

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

La `Date` da formattare rispetto a `baseDate`.

### `options` [#options]

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

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

| Proprietà       | Descrizione                                                                   | Tipo                            | Facoltativo | Predefinito  |
| --------------- | ----------------------------------------------------------------------------- | ------------------------------- | ----------- | ------------ |
| `locales`       | Le impostazioni regionali per la formattazione.                               | `string \| string[]`            | Sì          | `en`         |
| `baseDate`      | La data di riferimento per il confronto.                                      | `Date`                          | Sì          | `new Date()` |
| `numeric`       | Indica se usare sempre un output 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 utilizzare. | `'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 di `numeric` definito a monte da `'always'` a `'auto'`.

## Restituisce [#returns]

**Tipo** `string`

La stringa di tempo relativo formattata (ad esempio, &quot;2 ore fa&quot;, &quot;tra 3 giorni&quot;).

## Esempi [#examples]

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

const now = new Date();

// 2 ore fa
const pastDate = new Date(now.getTime() - 7200000);
console.log(formatRelativeTimeFromDate(pastDate, {
  locales: 'en-US',
  baseDate: now,
}));
// Output: "2 hours ago"

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

```typescript
// Più impostazioni regionali
const pastDate = new Date(Date.now() - 86400000); // ~1 giorno fa
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,
  })}`);
});
// Output:
// en-US: yesterday
// fr-FR: hier
// ja-JP: 昨日
// de-DE: gestern
```

## Note [#notes]

* Seleziona automaticamente l&#39;unità più appropriata in base alla differenza tra `date` e `baseDate`.
* Per impostazione predefinita, usa `numeric: 'auto'` e `style: 'long'`.
* Se `baseDate` non viene fornito, usa per impostazione predefinita `new Date()` — tieni presente che questo può causare problemi di idratazione nelle app renderizzate sul server.
* Usa internamente [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat).

## Sitemap

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