我目前正在使用 Phonegap 和 jQuery Mobile 构建一个 iOS 应用程序,并且我正在使用 HTML5 输入类型日期元素,以便用户输入他们的生日。这对于使用 Phonegap 应用程序来说是完全有意义的,因为这会调用手机的本机日期选择器 - 太棒了!
但是,当使用桌面浏览器测试我的应用程序时(我使用的是 Firefox 16),没有显示日期选择器,这显然是因为 Firefox 尚未实现这一点。这很酷,除了我可以在该字段中输入我想要的任何内容 - 任何我想要的格式。
规范说它应该使用这种yyyy-mm-dd
格式,而我的 iOS 设备就是这样做的。但是,如果我输入 eg 06-09-94
,当我尝试将它转换为 JavaScript 日期对象时,它不会很好地发挥作用。
这是我的测试:
// Value is set to 1994-09-06
console.log(new Date($("input[type=date]")[0].value));
// > Date object representing September 6, 1994
// Value is set to 06-09-1994
console.log(new Date($("input[type=date]")[0].value));
// > Invalid date
我在某处读过(至少对于 chrome),所有“有效”日期格式都将表示为yyyy-mm-dd
,但这并没有发生。http://updates.html5rocks.com/2012/08/Quick-FAQs-on-input-type-date-in-Google-Chrome
输入值返回什么样的格式?
input.value 始终以 yyyy-mm-dd 的形式返回,无论呈现格式如何。
所以,正如标题所示:我为什么要<input type="date">
在基于非移动设备的 Web 应用程序中使用?