Existuje nejaký spôsob, ako zmeniť formát input type="date"?

Na svojej webovej stránke pracujem s prvkami HTML5. V predvolenom nastavení sa pri vstupe type="date" zobrazuje dátum ako YYYY-MM-DD.

Otázka znie, či je možné zmeniť jeho formát na niečo podobné: DD-MM-RRRR?

Riešenie

Nie je možné zmeniť formát

Musíme rozlišovať medzi formátom over the wire a formátom prezentácie prehliadača.

Bezdrôtový formát

Špecifikácia HTML5 date input specification odkazuje na špecifikáciu RFC3339, ktorá špecifikuje úplný formát dátumu rovnajúci sa: RRRR-mm-dd`. Ďalšie podrobnosti nájdete v časti 5.6 špecifikácie RFC3339.

Formát prezentácie

Prehliadače nie sú obmedzené v tom, ako prezentujú vstupný dátum. V čase písania tohto článku majú prehliadače Chrome, Edge, Firefox a Opera podporu dátumu (pozri tu). Všetky zobrazujú výber dátumu a formátovanie textu vo vstupnom poli.

Zariadenia pre stolné počítače

V prehliadačoch Chrome, Firefox a Opera je formátovanie textu vstupného poľa'založené na nastavení jazyka prehliadača. V prípade prehliadača Edge je založené na nastavení jazyka systému Windows. Bohužiaľ, všetky webové prehliadače ignorujú formátovanie dátumu nakonfigurované v operačnom systéme. Podľa mňa je to veľmi zvláštne správanie a niečo, čo treba zvážiť pri používaní tohto typu vstupu. Napríklad holandským používateľom, ktorí majú operačný systém alebo jazyk prehliadača nastavený na en-us, sa namiesto formátu, na ktorý sú zvyknutí, zobrazí 01/30/2019: 30-01-2019.

Internet Explorer 9, 10 a 11 zobrazuje textové vstupné pole s formátom drôtu.

Mobilné zariadenia

Špeciálne pre Chrome v systéme Android je formátovanie založené na zobrazovacom jazyku systému Android. Predpokladám, že to isté platí aj pre ostatné prehliadače, hoci sa mi to nepodarilo overiť.

Komentáre (26)

Domnievam sa, že prehliadač použije miestny formát dátumu. Nemyslím si, že je to možné zmeniť. Mohli by ste samozrejme použiť vlastný výber dátumu.

Komentáre (3)

Google Chrome vo svojej poslednej beta verzii konečne používa vstup type=date a formát DD-MM-RRRR.

Musí teda existovať spôsob, ako vynútiť konkrétny formát. Vyvíjam webovú stránku HTML5 a vyhľadávanie dátumu teraz pri rôznych formátoch zlyháva.

Komentáre (5)