Intl.RelativeTimeFormat
Baseline
Ampliamente disponible
Esta característica está consolidada y funciona en muchos dispositivos y versiones de navegador. Está disponible en todos los navegadores desde septiembre de 2020.
El objeto Intl.RelativeTimeFormat te proporciona una manera de formatear tiempos relativos con traducciones.
Pruébalo
const rtf1 = new Intl.RelativeTimeFormat("en", { style: "short" });
console.log(rtf1.format(3, "quarter"));
// Expected output: "in 3 qtrs."
console.log(rtf1.format(-1, "day"));
// Expected output: "1 day ago"
const rtf2 = new Intl.RelativeTimeFormat("es", { numeric: "auto" });
console.log(rtf2.format(2, "day"));
// Expected output: "pasado mañana"
Constructor
Intl.RelativeTimeFormat.RelativeTimeFormat()-
Crea una nueva instancia de
Intl.RelativeTimeFormat.
Métodos estáticos
Intl.RelativeTimeFormat.supportedLocalesOf()-
Devuelve un
Arraycon todos los idiomas disponibles sin necesidad de usar el que hay por defecto.
Métodos de instancia
Intl.RelativeTimeFormat.prototype.format()-
Formatea
valueyunitconforme al idioma y las opciones de formateo al crear la instancia conIntl.RelativeTimeFormat. Intl.RelativeTimeFormat.prototype.formatToParts()-
Devuelve un
Arrayde 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 |
|---|
| ECMAScript® 2027 Internationalization API Specification> # relativetimeformat-objects> |