# General Translation Platform: formatRelativeTimeFromDate
URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class-methods/formatting/format-relative-time-from-date.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Formatea el tiempo relativo a partir de una fecha comparada con la hora actual o con otra fecha. Referencia de la API de formatRelativeTimeFromDate.

Formatea una cadena de tiempo relativo a partir de un `Date` en una instancia de [GT](/docs/platform/core/reference/gt-class/constructor), seleccionando automáticamente la unidad más adecuada. General Translation compara la fecha con una fecha base (la hora actual de forma predeterminada) y genera frases como &quot;hace 2 horas&quot; o &quot;en 3 días&quot;.

## Resumen [#overview]

Llama a `formatRelativeTimeFromDate` en una instancia de [`GT`](/docs/platform/core/reference/gt-class/constructor) con la `Date` de destino y, opcionalmente, un objeto de opciones. Devuelve la cadena formateada y elige la unidad que mejor se adapta a la diferencia de tiempo.

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

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

Firma:

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

*Nota: `formatRelativeTimeFromDate` se ejecuta localmente con `Intl.RelativeTimeFormat` y no requiere una clave de API. Usa de forma predeterminada la configuración regional de destino de la instancia y, si no está disponible, recurre a la configuración regional de origen y a `en`. Para formatear sin una instancia de `GT`, consulta la versión standalone de [`formatRelativeTimeFromDate`](/docs/platform/core/reference/utility-functions/formatting/format-relative-time-from-date).*

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

* **Selección automática de la unidad.** El método calcula la diferencia entre `date` y `baseDate` y elige la unidad más adecuada (segundos, minutos, horas, días, etc.).
* **Fecha base.** La comparación se realiza con `baseDate`, cuyo valor predeterminado es `new Date()` (la hora actual).
* **Resolución de la configuración regional.** Si se omite `locales`, el método usa la configuración regional de destino de la instancia y, después, la configuración regional de origen y `en`.
* **Valores predeterminados.** `numeric` usa `'auto'` de forma predeterminada y `style` usa `'long'` de forma predeterminada.

## Parámetros [#parameters]

| Parámetro             | Descripción                                            | Tipo     | Opcional | Predeterminado |
| --------------------- | ------------------------------------------------------ | -------- | -------- | -------------- |
| [`date`](#date)       | La fecha que se formateará en relación con `baseDate`. | `Date`   | No       | —              |
| [`options`](#options) | Configuración de formato.                              | `object` | Sí       | —              |

### `date` [#date]

**Tipo** `Date` · **Obligatorio**

La fecha que se debe formatear con respecto a `baseDate`.

### `options` [#options]

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

Configuración de formato. La tabla enumera `baseDate`, `locales` y las opciones comunes expuestas por los tipos Core publicados, 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 estándar adicionales y específicos del runtime).

| Nombre          | Descripción                                                              | Tipo                            | Opcional | Predeterminado                         |
| --------------- | ------------------------------------------------------------------------ | ------------------------------- | -------- | -------------------------------------- |
| `locales`       | Configuraciones regionales que se usarán para el formato.                | `string \| string[]`            | Sí       | `targetLocale` → `sourceLocale` → `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 de la salida.                                                | `'long' \| 'short' \| 'narrow'` | Sí       | `'long'`                               |
| `localeMatcher` | El algoritmo de coincidencia de configuración regional que se debe 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 de `numeric` de `'always'` a `'auto'`.

## Returns [#returns]

**Tipo** `string`

La cadena con formato de tiempo relativo, como &quot;hace 2 horas&quot; o &quot;en 3 días&quot;.

## Ejemplos [#examples]

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

const gt = new GT();

const now = new Date();

// Selecciona automáticamente "hours"
const twoHoursAgo = new Date(now.getTime() - 7200000);
gt.formatRelativeTimeFromDate(twoHoursAgo, { locales: 'en-US', baseDate: now });
// Devuelve: "2 hours ago"

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

## Notas [#notes]

* Selecciona automáticamente la unidad más adecuada según la diferencia de tiempo.
* Usa `numeric: 'auto'` y `style: 'long'` de forma predeterminada.
* Si no se proporciona `baseDate`, el valor predeterminado es `new Date()`.
* Para formatear explícitamente un valor y una unidad, 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.
