I'm trabalhando com elementos HTML5 na minha página web. Por padrão, a entrada type="date"
mostra a data como YYYYY-MM-DD
.
A questão é se é possível mudar o seu formato para algo parecido: "DDD-MM-YYYY"?
**É impossível alterar o formato***
Temos que diferenciar entre o formato de sobre o fio e o formato de apresentação do navegador.
A HTML5 date input specification refere-se à RFC3339 specification, que especifica um formato de data completa igual a: yyyyy-mm-dd
. Veja seção 5.6 da especificação RFC3339 para mais detalhes.
Os navegadores são irrestritos na forma como apresentam uma entrada de data. No momento de escrever Chrome, Edge, Firefox e Opera têm suporte a data (ver aqui). Todos eles exibem um seletor de data e formatam o texto no campo de entrada.
**Desktop dispositivos***
Para Chrome, Firefox e Opera, a formatação do texto do campo de entrada é baseada na configuração do idioma do navegador. Para Edge, ele é baseado na configuração de idioma do Windows. Infelizmente, todos os navegadores web ignoram a formatação da data configurada no sistema operacional. Para mim isto é um comportamento muito estranho, e algo a considerar quando se usa este tipo de entrada. Por exemplo, usuários holandeses que têm seu sistema operacional ou idioma de navegador configurado para en-us
serão mostrados 01/30/2019
ao invés do formato a que estão acostumados: 30-01-2019
.
O Internet Explorer 9, 10 e 11 exibe um campo de entrada de texto com o formato de fio.
**Dispositivos móveis***
Especificamente para o Chrome no Android, a formatação é baseada na linguagem do ecrã do Android. Eu suspeito que o mesmo se aplica a outros navegadores, embora eu não tenha sido capaz de verificar isso.
O Google Chrome em sua última versão beta finalmente utiliza a entrada type=date
, e o formato é DD-MM-YYYYY
.
Portanto, deve haver uma forma de forçar um formato específico. Estou desenvolvendo uma página web HTML5 e as buscas de datas agora falham com formatos diferentes.