# General Translation Platform: formatRelativeTimeFromDate URL: https://generaltranslation.com/es/docs/platform/core/reference/utility-functions/formatting/format-relative-time-from-date.mdx --- title: formatRelativeTimeFromDate 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 & { 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 & { 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 & { baseDate?: Date }` · **Opcional** · **Predeterminado** `{}` Configuración de formato: | 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 de referencia 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'` | ## Devuelve [#returns] **Tipo** `string` La cadena formateada de tiempo relativo (por ejemplo, "hace 2 horas", "en 3 días"). ## 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.