C'è un modo per cambiare l'input type="date" formato?

Sto lavorando con elementi HTML5 sulla mia pagina web. Per default l'input type="date" mostra la data come YYYY-MM-DD.

La domanda è: è possibile cambiare il suo formato in qualcosa come: DD-MM-YYYY?

Soluzione

È impossibile cambiare il formato

Dobbiamo distinguere tra il formato over the wire e il formato di presentazione del browser.

Formato su filo

La specifica HTML5 per l'inserimento della data fa riferimento alla specifica RFC3339, che specifica un formato di data completo uguale a: yyy-mm-dd. Vedi sezione 5.6 della specifica RFC3339 per maggiori dettagli.

Formato di presentazione

I browser non hanno restrizioni nel modo in cui presentano l'input della data. Al momento in cui scrivo Chrome, Edge, Firefox e Opera hanno il supporto per la data (vedi qui). Tutti mostrano un selezionatore di date e formattano il testo nel campo di input.

Dispositivi desktop

Per Chrome, Firefox e Opera, la formattazione del testo del campo di inserimento è basata sull'impostazione della lingua del browser. Per Edge, si basa sull'impostazione della lingua di Windows. Purtroppo, tutti i browser web ignorano la formattazione della data configurata nel sistema operativo. Per me questo è un comportamento molto strano, e qualcosa da considerare quando si usa questo tipo di input. Per esempio, gli utenti olandesi che hanno il loro sistema operativo o la lingua del browser impostata su en-us saranno mostrati 01/30/2019 invece del formato a cui sono abituati: 30-01-2019.

Internet Explorer 9, 10 e 11 visualizzano un campo di inserimento del testo con il formato del filo.

Dispositivi mobili

In particolare per Chrome su Android, la formattazione è basata sul linguaggio di visualizzazione di Android. Ho il sospetto che lo stesso sia vero per altri browser, anche se non sono stato in grado di verificarlo.

Commentari (26)

Credo che il browser utilizzerà il formato di data locale. Non credo sia possibile cambiare. Si potrebbe naturalmente utilizzare un selezionatore di date personalizzato.

Commentari (3)

Google Chrome nella sua ultima versione beta usa finalmente l'input type=date, e il formato è DD-MM-YYYY.

Quindi ci deve essere un modo per forzare un formato specifico. Sto sviluppando una pagina web in HTML5 e le ricerche di date ora falliscono con diversi formati.

Commentari (5)