Is er een manier om input type="date" formaat te veranderen?

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?

Oplossing

Het is onmogelijk om het formaat te veranderen

We moeten onderscheid maken tussen het over de draad formaat en de browser's presentatie formaat.

Draadformaat

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.

Presentatie formaat

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.

Commentaren (26)

Ik denk dat de browser de lokale datumnotatie gebruikt. Ik denk niet dat het mogelijk is om het te veranderen. Je zou natuurlijk een aangepaste datumkiezer kunnen gebruiken.

Commentaren (3)

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.

Commentaren (5)