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

6
我有一个使用PhoneGap构建的相当大的iPad应用程序,我正在进行一些测试以确保一切都能在iOS 7中适当地工作。我发现最重要的问题是不再支持。我已经看到几个帖子建议您现在需要为日期和时间分别拥有两个单独的字段。这是一个非常巨大的变化,因为我在整个应用程序中都在使用它。我希望这只是iOS 7 beta版本中出现的一些错误,因为它是HTML 5标准输入类型,但我似乎找不到任何信息。任何帮助或想法将不胜感激。

根据此http://iosdeveloperforums.com/f6/ios-7-safari-dont-support-date-time-input-433.html,它不再受支持。我也遇到了这个问题,到目前为止我能想到的唯一选项是分开字段,尽管这将是一个巨大的变化。 - n0minal
嗨,<input type="date"和<input type="time"怎么样?ios7支持它们吗?谢谢。 - EVA
4个回答

16

datetime的支持已经被移除,但您可以使用datetime-local代替。据我所知(无法透露消息来源),这种替代方案将长期存在。


1
任何参考链接? - xdumaine

3

看起来在iOS 7中已经移除了这个输入类型。

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

跟随Google Chrome的脚步,在iOS上的Safari不再支持datetime输入类型,并且将回退到text。标准已经废弃了这种类型,建议改用两个输入框,分别为日期和时间。问题在于,从版本5.0到6.1,datetime与iOS兼容;如果您正在使用它,请小心!


我寻找了支持这一说法的证据或博客文章,但没有找到:W3C网站上仍然有关于input[type="datetime"]的规范。您知道这个更改在哪里记录吗? - ehdv

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 "";
}
}

-4

请参考此处的文献

您的CSS应该更改为如下:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接