Na své webové stránce pracuji s prvky HTML5. Ve výchozím nastavení se na vstupu type="date"
zobrazuje datum jako YYYY-MM-DD
.
Otázka zní, zda je možné změnit jeho formát na něco jako: DD-MM-RRRR
?
Není možné změnit formát
Musíme rozlišovat mezi formátem po drátě a formátem prezentace prohlížeče.
Specifikace HTML5 date input specification odkazuje na specifikaci RFC3339, která specifikuje úplný formát data rovnající se: yyyy-mm-dd
. Další podrobnosti viz část 5.6 specifikace RFC3339.
Prohlížeče nejsou omezeny v tom, jakým způsobem prezentují vstupní data. V době psaní tohoto článku podporovaly datum prohlížeče Chrome, Edge, Firefox a Opera (viz zde). Všechny zobrazují výběr data a formátování textu ve vstupním poli.
Zařízení pro stolní počítače
V prohlížečích Chrome, Firefox a Opera je formátování textu vstupního pole založeno na nastavení jazyka prohlížeče. V případě prohlížeče Edge je založeno na nastavení jazyka systému Windows. Všechny webové prohlížeče bohužel ignorují formátování data nastavené v operačním systému. Podle mého názoru je to velmi zvláštní chování, které je třeba při používání tohoto typu vstupu zvážit. Například nizozemským uživatelům, kteří mají operační systém nebo jazyk prohlížeče nastaven na en-us
, se místo formátu, na který jsou zvyklí, zobrazí 01/30/2019
: 30-01-2019
.
Internet Explorer 9, 10 a 11 zobrazuje textové vstupní pole s formátem drátů.
Mobilní zařízení
Speciálně pro Chrome v systému Android je formátování založeno na zobrazovacím jazyku systému Android. Předpokládám, že totéž platí i pro ostatní prohlížeče, ačkoli se mi to nepodařilo ověřit.
Google Chrome ve své poslední beta verzi konečně používá vstup type=date
a formát DD-MM-RRRR
.
Musí tedy existovat způsob, jak vynutit konkrétní formát. Vyvíjím webovou stránku HTML5 a vyhledávání data nyní selhává při různých formátech.