Ik werk met HTML5 elementen op mijn webpagina. Standaard geeft input type="date"
de datum weer als JJJJ-MM-DD
.
De vraag is, is het mogelijk om het formaat te veranderen in iets als: DD-MM-YYYY
?
Het is onmogelijk om het formaat te veranderen
We moeten onderscheid maken tussen het over de draad formaat en de browser's presentatie formaat.
De HTML5 datum invoer specificatie verwijst naar de RFC3339 specificatie, die een volledig datum formaat specificeert gelijk aan: jjjj-mm-dd
. Zie sectie 5.6 van de RFC3339-specificatie voor meer details.
Browsers zijn onbeperkt in hoe ze een datuminvoer presenteren. Op het moment van schrijven hebben Chrome, Edge, Firefox, en Opera datumondersteuning (zie hier). Ze geven allemaal een datumkiezer weer en maken de tekst in het invoerveld op.
Desktop-apparaten
Voor Chrome, Firefox en Opera is de opmaak van de tekst in het invoerveld gebaseerd op de taalinstelling van de browser's. Voor Edge, is het gebaseerd op de Windows taalinstelling. Helaas negeren alle webbrowsers de datumopmaak die in het besturingssysteem is geconfigureerd. Voor mij is dit zeer vreemd gedrag, en iets om rekening mee te houden bij het gebruik van dit invoertype. Nederlandse gebruikers die hun besturingssysteem of browsertaal op en-us
hebben ingesteld, krijgen bijvoorbeeld 01/30/2019
te zien in plaats van de opmaak die zij gewend zijn: 30-01-2019
.
Internet Explorer 9, 10 en 11 geven een tekstinvoerveld weer met de draadindeling.
Mobiele apparaten
Specifiek voor Chrome op Android is de opmaak gebaseerd op de Android-weergavetaal. Ik vermoed dat hetzelfde geldt voor andere browsers, hoewel ik'dit niet heb kunnen verifiëren.
Google Chrome gebruikt in zijn laatste betaversie eindelijk de invoer type=datum
, en het formaat is DD-MM-YYYY
.
Er moet dus een manier zijn om een specifiek formaat te forceren. Ik'ben een HTML5 webpagina aan het ontwikkelen en de datum zoekopdrachten mislukken nu met verschillende formaten.