2010-08-16 2 views
30

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

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

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

+0

Не уверен, что это действительно то, что вы хотите, но вы можете найти значение в этом: http://flowplayer.org/tools/dateinput/index.html – treeface

+0

Что вы подразумеваете под значением вывода точно. Значение * value * или * отображаемое * значение? –

+1

@Pekka: Оба, действительно. –

ответ

23

HTML5 date input поле специфичен о формате он использует: RFC 3339 full-date

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

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

+43

Мне грустно. –

+8

dd-mmm-yyyy даже не зависит от локали (при условии, что mmm является «Jan», «Feb» и т. Д.). Так что это довольно «грустно», если ваш webapp/scripts требует такого формата вместо стандартного который не содержит локализованных строк. – ThiefMaster

+9

@ThiefMaster: пользователи, которые ожидали 03-FEB-2011 для каждого ввода даты во всем приложении, будут продолжать ожидать такой формат. yyyy-mm-dd не читается и не ожидается для граждан США (из которых клиент был в то время), и формат полностью не подходит для удобства использования, если требуется только месяц и день, или день и час. Когда конвенция существует, соглашение во многих случаях превосходит другие принципы проектирования для максимизации удобства использования, особенно там, где у клиента было мало оттока. –

15

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

Путь более полезен, на мой взгляд.

Источник:

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

0

Формат поля даты 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 и реализовать серверное решение. Возможно, со временем это может привести к большему использованию стандартного формата даты в каждом регионе.

 Смежные вопросы

  • Нет связанных вопросов^_^