Указание вывода значения типа ввода HTML5 = дата?

Я хочу добавить собственные приложения для выбора даты в мое приложение, которое в настоящее время использует устаревшую домашнюю систему. Поддержка ввода даты еще не получила широкого распространения, но если бы я мог представить обе реализации на основе совместимости, это было бы идеально.

Можно ли указать вывод значения, заданного параметром date date? По умолчанию для opera yyyy-mm-dd, и мне очень явно требуется dd-MMM-yyyy.

Есть ли способ управлять этим выходом, в настоящее время?

Ответ 1

В поле поле ввода HTML5 указано конкретное значение используемого формата: RFC 3339 full-date

Можно ли изменить устаревший выбор даты, чтобы использовать формат yyyy-mm-dd (и обновить серверную сторону, которая читает это)?

Я предполагаю, что нет, поэтому вы можете добавить некоторый код скриншота Javascript, который прослушивает событие изменения на входе HTML5 и обновляет поле значения скрытой даты в соответствии с форматом устаревшего выбора даты (конвертирует yyyy-mm-dd в дд-MMM-YYYY).

Ответ 2

В Google Chrome это недавно изменилось. Значения, отображаемые пользователю, теперь основаны на локали операционной системы. Однако считывание, поэтому input.value всегда возвращается как yyyy-mm-dd независимо от формата презентации.

Насколько полезен мой взгляд.

Источник:

http://updates.html5rocks.com/2012/08/Quick-FAQs-on-input-type-date-in-Google-Chrome

Ответ 3

Формат поля даты HTML является стандартным. Хотя это невозможно изменить, вы можете легко конвертировать из объекта даты в формат, который вы ищете, если у вашего пользователя включен JavaScript.

// Converts any valid Date string or Date object into the format dd-MMM-yyyy
function dateTransform(d) {
    var s = (new Date(d)).toString().split(' ');
    return [s[2],s[1],s[3]].join('-');
}

В противном случае вам нужно будет отправить в формате ISO и реализовать серверное решение. Возможно, со временем это может привести к большему использованию стандартного формата даты в каждой местности.