--- title: Intl.RelativeTimeFormat slug: Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat tags: - Internacionalização - Intl translation_of: Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat ---
O objeto Intl.RelativeTimeFormat é um construtor de objetos que permitem uma formatação de tempo relativa sensível ao idioma.
A fonte deste exemplo interativo está armazenada num repositório no GitHub. Se você quiser contribuir para o projeto de exemplos interativos, por favor clone https://github.com/mdn/interactive-examples e nos envie um pull request.
new Intl.RelativeTimeFormat([locales[, options]])
localesOpcional. 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)}}.
optionslocaleMatcher"lookup" e "best fit"; o padrão é "best fit". Para informações sobre esta opção, veja Intl.numeric"always" (padrão, e.g., há 1 dia),"auto" (e.g., ontem). O valor"auto" permite que não seja sempre necessário o uso de valores númericos na saída.style"long" (padrão, e.g., in 1 month)"short" (e.g., in 1 mo.),"narrow" (e.g., in 1 mo.). O estilo narrow pode ser similar ao short em alguns locais.RelativeTimeFormat Instâncias RelativeTimeFormat herdam as seguintes propriedades do seu protótipo:
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat/prototype', 'Properties')}}
Instâncias RelativeTimeFormat herdam as seguintes propriedades do seu protótipo:
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat/prototype', 'Methods')}}
formatO 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"
autoSe 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ã"
formatToPartsO 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ção | Estágio | Comentário |
|---|---|---|
| Intl.RelativeTime proposal | Stage 3 |
{{Compat("javascript.builtins.Intl.RelativeTimeFormat")}}