javascript - HTML5 Input datetime-local 跨浏览器获取日期对象

标签 javascript asp.net-mvc-3 html 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">

如果浏览器支持 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/

相关文章:

javascript - 应用反向滚动后无限滚动

javascript - MVC3 中使用 ajax 进行 Webgrid 刷新

html - 使用 XPath : how to exclude text in nested elements

html - 即使显示 : inline,表单标记也会破坏页面布局

javascript - Google Maps API : How to replace the source, 从 Google Spreadsheet API 到 MySQL/PHP?

javascript 正则表达式 - 测试不是函数

javascript - 根据 MongoDB 文档中的另一个字段更新一个字段(在 Node.js 中使用 Mongoose)

javascript - MVC3下如何给JavaScript赋值

asp.net-mvc-3 - 在 razor 语句之间输出 HTML 文字会导致编译错误

javascript - 选择其他按钮时,JQuery Mobile 单选按钮保持选中状态。使用 .html 函数