--- 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]])
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
localeMatcher
"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')}}
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"
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ã"
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ção | Estágio | Comentário |
---|---|---|
Intl.RelativeTime proposal | Stage 3 |
{{Compat("javascript.builtins.Intl.RelativeTimeFormat")}}