# General Translation Platform: formatRelativeTimeFromDate
URL: https://generaltranslation.com/es/docs/platform/core/reference/utility-functions/formatting/format-relative-time-from-date.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Da formato al tiempo relativo a partir de una fecha sin una instancia de GT. Referencia de API para formatRelativeTimeFromDate.

[`formatRelativeTimeFromDate`](/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time-from-date) es una función utilitaria independiente de la biblioteca Core de General Translation que da formato a una cadena de tiempo relativo a partir de un `Date`, seleccionando automáticamente la unidad más adecuada (segundos, minutos, horas, días, semanas, meses o años).

## Resumen general [#overview]

Importa `formatRelativeTimeFromDate` directamente desde `generaltranslation` y úsalo con un `Date` y un objeto de opciones. No requiere una clave de API ni una instancia de [GT](/docs/platform/core/reference/gt-class/constructor). Si quieres un formato basado en instancias que herede la configuración regional de la instancia, usa en su lugar el método [`formatRelativeTimeFromDate`](/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time-from-date) de una instancia de [`GT`](/docs/platform/core/reference/gt-class/constructor). Para dar formato tú mismo a un valor y una unidad explícitos, usa [`formatRelativeTime`](/docs/platform/core/reference/utility-functions/formatting/format-relative-time).

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

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

Signatura:

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

## Cómo funciona [#how-it-works]

* **Selección de unidad.** Selecciona automáticamente la unidad más adecuada según la diferencia entre `date` y `baseDate`.
* **API subyacente.** Usa [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat) internamente.
* **Modo numérico.** De forma predeterminada, usa `numeric: 'auto'` y `style: 'long'`.
* **Valor predeterminado de la fecha base.** Si no se proporciona `baseDate`, se usa `new Date()` por defecto. Ten en cuenta que esto puede provocar desajustes de hidratación en aplicaciones renderizadas en el servidor.
* **Resolución de la configuración regional.** Si se omite `locales`, se usa la configuración regional predeterminada de la biblioteca, `en`.

## Parámetros [#parameters]

| Parámetro             | Descripción                                                                                             | Tipo                                                                                                       | Opcional | Predeterminado |
| --------------------- | ------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -------- | -------------- |
| [`date`](#date)       | La fecha que se va a formatear con respecto a `baseDate`.                                               | `Date`                                                                                                     | No       | —              |
| [`options`](#options) | Configuración de formato, incluida la configuración regional de destino y la fecha base de comparación. | `{ locales?: string \| string[] } & Omit<Intl.RelativeTimeFormatOptions, 'locales'> & { baseDate?: Date }` | Sí       | `{}`           |

### `date` [#date]

**Type** `Date` · **Obligatorio**

La instancia de `Date` que se formateará en relación con `baseDate`.

### `options` [#options]

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

Configuración de formato. La tabla enumera `baseDate`, `locales` y las opciones comunes expuestas por los tipos publicados de Core, junto con sus valores predeterminados efectivos de Core. (Consulta las [opciones del constructor `Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#options) para obtener detalles complementarios estándar y específicos del tiempo de ejecución).

| Propiedad       | Descripción                                                                 | Tipo                            | Opcional | Predeterminado |
| --------------- | --------------------------------------------------------------------------- | ------------------------------- | -------- | -------------- |
| `locales`       | La configuración regional o las configuraciones regionales para el formato. | `string \| string[]`            | Sí       | `en`           |
| `baseDate`      | La fecha base para la comparación.                                 | `Date`                          | Sí       | `new Date()`   |
| `numeric`       | Si se debe usar siempre una salida numérica.                                | `'always' \| 'auto'`            | Sí       | `'auto'`       |
| `style`         | La longitud del resultado.                                                  | `'long' \| 'short' \| 'narrow'` | Sí       | `'long'`       |
| `localeMatcher` | El algoritmo de coincidencia de configuración regional que se usará.        | `'best fit' \| 'lookup'`        | Sí       | `'best fit'`   |

`baseDate` es un campo exclusivo de Core y no se pasa a `Intl.RelativeTimeFormat`. Core también cambia el valor predeterminado ascendente de `numeric` de `'always'` a `'auto'`.

## Devuelve [#returns]

**Tipo** `string`

La cadena formateada de tiempo relativo (por ejemplo, &quot;hace 2 horas&quot;, &quot;en 3 días&quot;).

## Ejemplos [#examples]

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

const now = new Date();

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

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

```typescript
// Múltiples configuraciones regionales
const pastDate = new Date(Date.now() - 86400000); // ~hace 1 día
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,
  })}`);
});
// Salida:
// en-US: yesterday
// fr-FR: hier
// ja-JP: 昨日
// de-DE: gestern
```

## Notas [#notes]

* Selecciona automáticamente la unidad más adecuada según la diferencia entre `date` y `baseDate`.
* Usa por defecto `numeric: 'auto'` y `style: 'long'`.
* Si no se proporciona `baseDate`, por defecto se usa `new Date()` — ten en cuenta que esto puede causar desajustes de hidratación en aplicaciones con renderizado del lado del servidor.
* Usa [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat) internamente.

## Sitemap

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