Intl.RelativeTimeFormat

El objeto Intl.RelativeTimeFormat te proporciona una manera de formatear tiempos relativos con traducciones.

Constructor

Intl.RelativeTimeFormat.RelativeTimeFormat()
Crea una nueva instancia de Intl.RelativeTimeFormat.

Métodos estáticos

Intl.RelativeTimeFormat.supportedLocalesOf()
Devuelve un Array con todos los idiomas disponibles sin necesidad de usar el que hay por defecto.

Métodos de instancia

Intl.RelativeTimeFormat.prototype.format()
Formatea value y unit conforme al idioma y las opciones de formateo al crear la instancia con Intl.RelativeTimeFormat.
Intl.RelativeTimeFormat.prototype.formatToParts()
Devuelve un Array de objetos representando el tiempo relativo en partes que pueden ser usadas en traducciones.
Intl.RelativeTimeFormat.prototype.resolvedOptions()
Devuelve un nuevo objeto con las propiedades que reflejan las opciones de localización y formato usadas durante la inicialización del objeto.

Ejemplos

Ejemplo básico

El siguiente ejemplo muestra cómo conseguir el tiempo relativo para el mejor idioma según el usuario.

// Crea un formateador de tiempo relativo en tu lenguaje
// con los valores por defectos pasados expresamente.
const rtf = new Intl.RelativeTimeFormat("en", {
    localeMatcher: "best fit", // otros valores: "lookup"
    numeric: "always", // otros valores: "auto"
    style: "long", // otros valores: "short" or "narrow"
});

// Formatea el tiempo relativo con valores negativos (-1).
rtf.format(-1, "day");
// > "Hace 1 día"

// Formatea el tiempo relativo con valores positivos (1).
rtf.format(1, "day");
// > "Dentro de 1 día"

Usando formatToParts

El siguiente ejemplo muestra cómo crear un formateador de tiempo relativo que devuelve las partes separadas:

const rtf = new Intl.RelativeTimeFormat("es", { numeric: "auto" });

// Formatea el tiempo relativo usando día como unidad.
rtf.formatToParts(-1, "day");
// > [{ type: "literal", value: "ayer"}]

rtf.formatToParts(100, "day");
// > [{ type: "literal", value: "Dentro de " }, 
// >  { type: "integer", value: "100", unit: "day" }, 
// >  { type: "literal", value: " días" }]

Especificaciones

Especificación Estado Comentario
ECMAScript Internationalization API (ECMA-402)
La definición de 'RelativeTimeFormat' en esta especificación.

Compatibilidad en navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung InternetNode.js
RelativeTimeFormatChrome Soporte completo 71Edge Soporte completo 79Firefox Soporte completo 65IE Sin soporte NoOpera Soporte completo 58Safari Soporte completo 14WebView Android Soporte completo 71Chrome Android Soporte completo 71Firefox Android Soporte completo 65Opera Android Soporte completo 50Safari iOS Soporte completo 14Samsung Internet Android Soporte completo 10.0nodejs Soporte completo 12.0.0
Notas
Soporte completo 12.0.0
Notas
Notas Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
RelativeTimeFormat() constructorChrome Soporte completo 71Edge Soporte completo 79Firefox Soporte completo 65IE Sin soporte NoOpera Soporte completo 58Safari Soporte completo 14WebView Android Soporte completo 71Chrome Android Soporte completo 71Firefox Android Soporte completo 65Opera Android Soporte completo 50Safari iOS Soporte completo 14Samsung Internet Android Soporte completo 10.0nodejs Soporte completo 13.0.0
Soporte completo 13.0.0
Soporte parcial 12.0.0
Notas
Notas Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the RelativeTimeFormat instance silently falls back to en-US. To make full ICU (locale) data available for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.
formatChrome Soporte completo 71Edge Soporte completo 79Firefox Soporte completo 65IE Sin soporte NoOpera Soporte completo 58Safari Soporte completo 14WebView Android Soporte completo 71Chrome Android Soporte completo 71Firefox Android Soporte completo 65Opera Android Soporte completo 50Safari iOS Soporte completo 14Samsung Internet Android Soporte completo 10.0nodejs Soporte completo 12.0.0
Notas
Soporte completo 12.0.0
Notas
Notas Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
formatToPartsChrome Soporte completo 71Edge Soporte completo 79Firefox Soporte completo 70IE Sin soporte NoOpera Soporte completo 58Safari Soporte completo 14WebView Android Soporte completo 71Chrome Android Soporte completo 71Firefox Android Sin soporte NoOpera Android Soporte completo 50Safari iOS Soporte completo 14Samsung Internet Android Soporte completo 10.0nodejs Soporte completo 12.0.0
Notas
Soporte completo 12.0.0
Notas
Notas Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
resolvedOptionsChrome Soporte completo 71Edge Soporte completo 79Firefox Soporte completo 65IE Sin soporte NoOpera Soporte completo 58Safari Soporte completo 14WebView Android Soporte completo 71Chrome Android Soporte completo 71Firefox Android Soporte completo 65Opera Android Soporte completo 50Safari iOS Soporte completo 14Samsung Internet Android Soporte completo 10.0nodejs Soporte completo 12.0.0
Notas
Soporte completo 12.0.0
Notas
Notas Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
supportedLocalesOfChrome Soporte completo 71Edge Soporte completo 79Firefox Soporte completo 65IE Sin soporte NoOpera Soporte completo 58Safari Soporte completo 14WebView Android Soporte completo 71Chrome Android Soporte completo 71Firefox Android Soporte completo 65Opera Android Soporte completo 50Safari iOS Soporte completo 14Samsung Internet Android Soporte completo 10.0nodejs Soporte completo 13.0.0
Soporte completo 13.0.0
Soporte parcial 12.0.0
Notas
Notas Before version 13.0.0, only the locale data for en-US is available by default. To make full ICU (locale) data available for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Ver notas de implementación.
Ver notas de implementación.

Ver también