iOS 7移动版Safari不再支持<input type =“datetime”/>

我有一个相当大的使用PhoneGap构build的iPad应用程序,我正在做一些testing,以确保在iOS 7中一切正常。我发现的最重要的问题是<input type="datetime"/>不再支持的。

我已经看到几个贴子,build议你现在需要有两个单独的字段的date和时间。 这是一个非常巨大的变化,因为我在整个应用程序中使用了这个。 我希望这只是在iOS 7的testing版发布,因为它是一个HTML 5标准inputtypes,但我似乎无法find任何信息。

任何帮助或想法将不胜感激。

datetime支持已被删除,但是可以使用datetime-local来代替。 从我所听到的(不能从谁那里说出来)就在这里停留。

它看起来像这个inputtypes在iOS 7中被删除

http://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review

继谷歌浏览器之后,iOS上的Safari现在不再支持date时间inputtypes,它将回退到文本。 这种types在标准中被弃用,有利于使用两个input,date和时间用于相同的目的。 问题在于datetime与从5.0版本到6.1版本的iOS兼容; 如果你使用它,要小心!

我最终使用了datetime-local,但是您必须确保在绑定到控件时和从控件绑定时考虑时区。 我们要在数据库中存储GMT时间。 我用下面的函数在绑定过程中来回转换。

 function formatHTML5DateTime(date) { try { if (typeof(date) == 'undefined' || date == null || date == '') return ""; var tmpDate = new Date(date); // gets the timezone offset in minutes var offset = tmpDate.getTimezoneOffset(); // apply the timezone offset in reverse to local time var newDate = tmpDate.addMinutes(Math.abs(offset) * -1); return newDate.toISOString().replace("Z", ""); } catch(e) { return ""; } } function formatJSDate(date) { try { if (typeof(date) == 'undefined' || date == null || date == '') return ""; var tmpDate = new Date(date); // gets the timezone offset in minutes var offset = tmpDate.getTimezoneOffset(); // apply the timezone offset to UTC time var newDate = tmpDate.addMinutes(offset); return newDate.toISOString(); } catch(e) { return ""; } } 

请参阅这里的参考

你的CSS应该改变如下:

 { align-items: center; display: -webkit-inline-flex; overflow: hidden; padding: 0px; -webkit-padding-start: 1px; }