Uma maneira útil e flexível para formatar o DateTimes em JavaScript é Intl.DateTimeFormat
:
var date = new Date();
var options = { year: 'numeric', month: 'short', day: '2-digit'};
var _resultDate = new Intl.DateTimeFormat('en-GB', options).format(date);
// The _resultDate is: "12 Oct 2017"
// Replace all spaces with - and then log it.
console.log(_resultDate.replace(/ /g,'-'));
O resultado é: "12-Oct-2017"
Os formatos de data e hora podem ser personalizados usando o argumento de opções.
O Intl.DateTimeFormat
objeto é um construtor para objetos que habilitam a formatação de data e hora sensíveis ao idioma.
Sintaxe
new Intl.DateTimeFormat([locales[, options]])
Intl.DateTimeFormat.call(this[, locales[, options]])
Parâmetros
localidades
Opcional. Uma sequência com uma tag de idioma BCP 47 ou uma matriz dessas seqüências. Para a forma geral e interpretação do argumento de localidades, consulte a página Intl. As seguintes chaves de extensão Unicode são permitidas:
nu
Numbering system. Possible values include: "arab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt".
ca
Calendar. Possible values include: "buddhist", "chinese", "coptic", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamicc", "iso8601", "japanese", "persian", "roc".
Opções
Opcional. Um objeto com algumas ou todas as seguintes propriedades:
localeMatcher
O algoritmo de correspondência de localidade a ser usado. Os valores possíveis são "lookup"
e "best fit"
; o padrão é "best fit"
. Para informações sobre esta opção, consulte a página Intl.
fuso horário
O fuso horário a ser usado. As únicas implementações de valor que você deve reconhecer é "UTC"
; o padrão é o fuso horário padrão do tempo de execução. Implementações podem também reconhecer os nomes de zona de tempo do banco de dados de fuso horário IANA, tais como "Asia/Shanghai"
, "Asia/Kolkata"
,"America/New_York"
.
hour12
Se deve ser usado o tempo de 12 horas (em oposição ao tempo de 24 horas). Os valores possíveis são true
e false
; o padrão é dependente da localidade.
formatMatcher
O algoritmo de correspondência de formato a ser usado. Os valores possíveis são "basic"
e "best fit"
; o padrão é "best fit"
. Consulte os parágrafos a seguir para obter informações sobre o uso dessa propriedade.
As propriedades a seguir descrevem os componentes de data e hora a serem usados na saída formatada e suas representações desejadas. As implementações são necessárias para suportar pelo menos os seguintes subconjuntos:
weekday, year, month, day, hour, minute, second
weekday, year, month, day
year, month, day
year, month
month, day
hour, minute, second
hour, minute
As implementações podem oferecer suporte a outros subconjuntos e as solicitações serão negociadas em relação a todas as combinações disponíveis de representação de subconjunto para encontrar a melhor correspondência. Dois algoritmos estão disponíveis para essa negociação e selecionados pela propriedade formatMatcher: Um "basic"
algoritmo totalmente especificado e um algoritmo de "melhor ajuste" dependente da implementação.
dia da semana
A representação do dia da semana. Os valores possíveis são "narrow"
, "short"
, "long"
.
era
A representação da época. Os valores possíveis são "narrow"
, "short"
, "long"
.
ano
A representação do ano. Os valores possíveis são "numeric"
, "2-digit"
.
mês
A representação do mês. Os valores possíveis são "numeric"
, "2-digit"
, "narrow"
, "short"
, "long"
.
dia
A representação do dia. Os valores possíveis são "numeric"
, "2-digit"
.
hora
A representação da hora. Os valores possíveis são "numeric"
, "2-digit"
.
minuto
A representação do minuto. Os valores possíveis são "numeric"
, "2-digit"
.
segundo
A representação do segundo. Os valores possíveis são "numeric"
, "2-digit"
.
timeZoneName
A representação do nome do fuso horário. Os valores possíveis são "short"
, "long"
. O valor padrão para cada propriedade do componente de data e hora é indefinido, mas se todas as propriedades do componente forem indefinidas, o ano, o mês e o dia serão assumidos "numeric"
.
Verifique on-line
Mais detalhes