HTML5 Ввод datetime-local Get Date Object Кросс-браузер - PullRequest
2 голосов
/ 30 декабря 2011

У меня есть веб-страница HTML5 (с использованием asp mvc3 и razor), которая имеет локальный ввод даты и времени, как показано ниже:

<input type="datetime-local" name="StartTime" id="StartTime" data-val-required="The Event Start Time field is required." data-val="true">

Если браузер поддерживает встроенный инструмент выбора даты и времени, я использую его, в противном случае я использую инструмент выбора даты jQueryUI + плагин выбора времени.

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

var startdatevalue = $('#StartTime').val();
var value = $('#EndTime').val();
var dateStart, dateValue;
if (Modernizr.inputtypes.date) {
    //TODO: this doesn't seem to work in safari mobile
    dateStart = Date.parse(startdatevalue);
    dateValue = Date.parse(value);
}
else {
    dateStart = Date.parseString(startdatevalue.trim(), "@Constants.DateTimeFormat");
    dateValue = Date.parseString(value.trim(), "@Constants.DateTimeFormat");
}

Согласно комментарию в приведенном выше коде, это работает в Opera 11 (для настольных ПК), но не в Safari на iPad. Opera возвращает Date в формате «2011-12-01T12: 00», но Safari, похоже, делает что-то еще (похоже, «2012-01-01 00:00»).

Существует ли кросс-браузерный способ получения фактического объекта Date из встроенного средства выбора даты?

1 Ответ

0 голосов
/ 30 декабря 2011

Разве valueAsDate не возвращает объект Date?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...