我有一个 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">
如果浏览器支持 native 日期时间选择器,那么我会使用它,否则我会使用 jQueryUI 日期选择器 + 时间选择器插件。
我有服务器端和客户端验证来检查这个日期是否在范围内。服务器端验证可以很好地解析日期时间字符串并对其进行验证,但我在 native 支持日期时间选择器的浏览器的客户端验证方面遇到了问题。
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”)。
是否有一种跨浏览器的方法可以从 native 日期选择器输入中获取实际的 Date 对象?
最佳答案
是valueAsDate
不返回 Date 对象?
关于javascript - HTML5 Input datetime-local 跨浏览器获取日期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8680548/