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

时间:2013-08-26 13:58:11

标签: ios html5 mobile-safari

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

我看过几篇帖子,建议您现在需要两个单独的日期和时间字段。这是一个非常巨大的变化,因为我在整个应用程序中使用它。我希望这只是 iOS 7测试版中的一些内容,因为它是 HTML 5标准输入类型,但我似乎无法找到任何信息

非常感谢任何帮助或想法。

4 个答案:

答案 0 :(得分:16)

已删除对datetime的支持,但您可以使用datetime-local。从我所听到的(不能说是谁),它就在这里。

答案 1 :(得分:3)

看起来这个输入类型已在iOS 7中删除

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

  

在Google Chrome之后,现在iOS上的Safari不支持   日期时间输入类型,它将回退到文本。这个类型   在标准中被弃用,赞成使用两个输入,日期和   出于同样目的的时间。问题是datetime是兼容的   iOS版本从5.0到6.1;如果您正在使用它,请小心!

答案 2 :(得分:0)

我最终使用了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 "";
}
}

答案 3 :(得分:-4)

参见参考here

你的CSS应该改变如下:

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