HTML5输入datetime-local获取日期对象跨浏览器

时间:2011-12-30 14:39:59

标签: javascript asp.net-mvc-3 html5 datetime cross-browser

我有一个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日期选择器+时间选择器插件。

我同时进行服务器端和客户端验证,以检查此日期是否在范围内。服务器端验证可以解析日期时间字符串并验证它,但我对本机支持日期时间选择器的浏览器的客户端验证有问题。

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(桌面),但不适用于iPad上的Safari。 Opera正在以“2011-12-01T12:00”格式返回日期,但Safari似乎正在做其他事情(似乎是“2012-01-01 00:00”)。

是否有跨浏览器方式从本机日期选择器输入中获取实际的Date对象?

1 个答案:

答案 0 :(得分:0)

valueAsDate是否没有返回Date对象?