# generaltranslation: General Translation Core SDK: formatRelativeTimeFromDate URL: https://generaltranslation.com/es/docs/core/functions/formatting/format-relative-time-from-date.mdx --- title: formatRelativeTimeFromDate description: Función autónoma para formatear el tiempo relativo a partir de una Date, seleccionando automáticamente la unidad más adecuada --- ## Descripción general La función autónoma `formatRelativeTimeFromDate` formatea una cadena de tiempo relativo a partir de un `Date` y selecciona automáticamente la unidad más adecuada (segundos, minutos, horas, días, semanas, meses o años). ```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" ``` ## Referencia ### Parámetros | Nombre | Tipo | Descripción | | --------- | -------- | --------------------------------------------------- | | `date` | `Date` | La fecha que se formatea en relación con `baseDate` | | `options` | `object` | Configuración de formato | ### Opciones | Nombre | Tipo | Descripción | | ---------------- | ------------------------------- | --------------------------------------------------------------------------------------- | | `locales` | `string \| string[]` | **Obligatorio.** Configuraciones regionales para dar formato | | `baseDate?` | `Date` | La fecha base para la comparación. El valor predeterminado es `new Date()` | | `numeric?` | `'always' \| 'auto'` | Indica si siempre se debe usar una salida numérica. El valor predeterminado es `'auto'` | | `style?` | `'long' \| 'short' \| 'narrow'` | La longitud del resultado. El valor predeterminado es `'long'` | | `localeMatcher?` | `'best fit' \| 'lookup'` | El algoritmo de coincidencia de configuración regional que se utilizará | ### Devuelve `cadena` - La cadena de tiempo relativo formateada (p. ej., "hace 2 horas", "dentro de 3 días"). *** ## Ejemplo ### Uso básico ```typescript copy 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" ``` ### Varias configuraciones regionales ```typescript copy import { formatRelativeTimeFromDate } from 'generaltranslation'; 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 * Selecciona automáticamente la unidad más adecuada según la diferencia entre `date` y `baseDate` * Usa `numeric: 'auto'` y `style: 'long'` de forma predeterminada * Si no se proporciona `baseDate`, se usa `new Date()` de forma predeterminada — ten en cuenta que esto puede provocar desajustes de hidratación en aplicaciones renderizadas en el servidor * Usa [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat) internamente ## Siguientes pasos * Consulta [`formatRelativeTime`](/docs/core/functions/formatting/format-relative-time) para el formato explícito de valor + unidad * Consulta [`formatDateTime`](/docs/core/functions/formatting/format-date-time) para el formato autónomo de fecha y hora * Consulta el método de la clase GT [`formatRelativeTimeFromDate`](/docs/core/class/methods/formatting/format-relative-time-from-date) para usarlo mediante instancias