--- title: Intl.RelativeTimeFormat slug: Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat tags: - Internacionalização - Intl translation_of: Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat ---
{{JSRef}}

O objeto Intl.RelativeTimeFormat é um construtor de objetos que permitem uma formatação de tempo relativa sensível ao idioma.

{{EmbedInteractiveExample("pages/js/intl-relativetimeformat.html")}}

Sintaxe

new Intl.RelativeTimeFormat([locales[, options]])

Parâmetros

locales

Opcional. Uma string com uma tag da linguagem BCP 47, ou um array dessas strings. Para a forma geral e interpretação do argumento locales , acesse: {{jsxref("Global_Objects/Intl", "Página Intl", "#Locale_identification_and_negotiation", 1)}}.

options
Opcional. Um objeto com algumas ou todas as seguintes propriedades:

Descrição

Propriedades

{{jsxref("RelativeTimeFormat.prototype", "Intl.RelativeTimeFormat.prototype")}}
Permite a adição de propriedades para todos os objetos.

Métodos

{{jsxref("RelativeTimeFormat.supportedLocalesOf", "Intl.RelativeTimeFormat.supportedLocalesOf()")}}
Retorna um array contendo os valores disponíveis dentre os que foram passados como parâmetro sem ter de recorrer ao local padrão do ambiente.

Instâncias RelativeTimeFormat 

Propriedades

Instâncias RelativeTimeFormat herdam as seguintes propriedades do seu protótipo:

{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat/prototype', 'Properties')}}

Métodos

Instâncias RelativeTimeFormat  herdam as seguintes propriedades do seu protótipo:

{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat/prototype', 'Methods')}}

Exemplos

Uso básico do format

O exemplo a seguir mostra como criar um formatador de tempo relativo usando a língua portuguesa.

// Crie um formatador de tempo relativo no seu local
// com os valores padrão sendo passados explicitamente.
const rtf = new Intl.RelativeTimeFormat("pt", {
    localeMatcher: "best fit", // outros valores: "lookup"
    numeric: "always", // outros valores: "auto"
    style: "long", // outros valores: "short" ou "narrow"
});

// Formatação de tempo relativa usando valor negativo (-1).
rtf.format(-1, "day");
// > "há 1 dia"

// Formatação de tempo relativa usando valor positivo (1).
rtf.format(1, "day");
// > "em 1 dia"

Usando a opção auto

Se a opção numeric:auto é passada, serão produzidas as strings ontem ou amanhã ao invés de há 1 dia ou em 1 dia. Isso permite que não seja necessário sempre utilizar valores numéricos na saída.

// Crie um formatador de tempo relativo no seu local
// com o valor "auto" passado para a propriedade numeric.
const rtf = new Intl.RelativeTimeFormat("pt", { numeric: "auto" });

// Formatação de tempo relativa usando valor negativo (-1).
rtf.format(-1, "day");
// > "ontem"

// Formatação de tempo relativa usando valor positivo (1).
rtf.format(1, "day");
// > "amanhã"

Usando formatToParts

O exemplo a seguir mostra como criar um formatador de tempo relativo que retorna partes formatadas

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

// Formatação de tempo relativa usando a unidade day.
rtf.formatToParts(-1, "day");
// > [{type: "literal", value: "ontem"}]

rtf.formatToParts(100, "day");
// > [{type: "literal", value: "em "},
// >  { type: "integer", value: "100", unit: "day" },
// >  {type: "literal", value: " dias"]

Especificações

Especificação Estágio Comentário
Intl.RelativeTime proposal Stage 3  

Compatibilidade com navegadores

{{Compat("javascript.builtins.Intl.RelativeTimeFormat")}}

 

Veja também