Intl.RelativeTimeFormat
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.
El objeto Intl.RelativeTimeFormat
te proporciona una manera de formatear tiempos relativos con traducciones.
Pruébalo
El código de este ejemplo interactivo está disponible en un repositorio GitHub. Si quieres contribuir a los ejemplos interactivos del proyecto, por favor, clona https://github.com/mdn/interactive-examples y manda una Pull Request.
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
yunit
conforme al idioma y las opciones de formateo al crear la instancia conIntl.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
Specification |
---|
ECMAScript Internationalization API Specification # relativetimeformat-objects |
Compatibilidad con navegadores
BCD tables only load in the browser