Я працюю з елементами HTML5 на своїй веб-сторінці. За замовчуванням при введенні type="date"
дата відображається у вигляді YYYY-MM-DD
.
Питання в тому, чи можна змінити його формат на щось на кшталт: DD-MM-YYYY
?
Змінити формат неможливо.
Ми повинні розрізняти формат, що передається по дроту, та формат представлення у браузері.
Специфікація введення дати в HTML5]1 посилається на специфікацію RFC3339, яка визначає формат повної дати, що дорівнює: yyyy-mm-dd
. Більш детально див. розділ 5.6 специфікації RFC3339.
Браузери не обмежені в тому, як вони представляють введення дати. На момент написання цього звіту Chrome, Edge, Firefox та Opera підтримують введення дати (див. тут). Всі вони відображають інструмент для вибору дати та форматують текст у полі введення.
Десктопні пристрої
Для Chrome, Firefox та Opera форматування тексту поля введення базується на мовних налаштуваннях браузера. Для Edge воно базується на мовних налаштуваннях Windows. На жаль, всі веб-браузери ігнорують форматування дати, налаштоване в операційній системі. Для мене це дуже дивна поведінка, і це те, що слід враховувати при використанні цього типу введення. Наприклад, голландські користувачі, у яких в операційній системі або браузері встановлено мову en-us
, побачать 01/30/2019
замість звичного для них формату: 30-01-2019
.
Internet Explorer 9, 10 та 11 відображає поле введення тексту у форматі wire.
**Мобільні пристрої
Зокрема, для Chrome на Android форматування базується на мові відображення Android. Я підозрюю, що те ж саме стосується й інших браузерів, хоча я не зміг це перевірити.
Я вважаю, що браузер буде використовувати місцевий формат дати. Не думаю, що це можливо змінити. Звичайно, ви можете скористатися спеціальним вибором дати.
Google Chrome в останній бета-версії нарешті використовує введення type=date
, а формат - DD-MM-YYY
.
Тож має бути спосіб примусово ввести певний формат. Я розробляю веб-сторінку на HTML5, і пошук за датою тепер не працює з різними форматами.