我有一个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对象?