为啥具有 ISO 8601 值的日期时间字段在 iOS webkit 浏览器中不起作用?

Posted

技术标签:

【中文标题】为啥具有 ISO 8601 值的日期时间字段在 iOS webkit 浏览器中不起作用?【英文标题】:Why don't datetime fields with ISO 8601 values work in iOS webkit browsers?为什么具有 ISO 8601 值的日期时间字段在 iOS webkit 浏览器中不起作用? 【发布时间】:2013-05-19 17:40:43 【问题描述】:

为什么以下日期时间字段在 Safari 或 ios 中的 PhoneGap 中不显示当前值?

<input type="datetime" value="2013-05-22T10:00:00+0000" />

它显示一个空白值。

【问题讨论】:

【参考方案1】:

在 iOS 中,日期时间输入字段仅适用于 UTC 值,并且仅适用于祖鲁时区指定。本地时间和带有 +0000 偏移量的 UTC 时间都是不可接受的。时间中包含毫秒是可以接受的。

以下值有效:

<input type="datetime" value="2013-05-22T10:00:00Z" />
<input type="datetime" value="2013-05-22T10:00:00.000Z" />

这些都不起作用:

<input type="datetime" value="2013-05-22T10:00:00+0000" />
<input type="datetime" value="2013-05-22T10:00:00.000+0000" />
<input type="datetime" value="2013-05-22T10:00:00-0700" />
<input type="datetime" value="2013-05-22T10:00:00.000-0700" />
<input type="datetime" value="2013-05-22T10:00:00" />
<input type="datetime" value="2013-05-22T10:00:00.000" />

【讨论】:

很好的答案,但您知道其中的原因吗? spec 清楚地显示了一个带有偏移量的示例,并表示任何符合 RFC3339 的值都应该有效。

以上是关于为啥具有 ISO 8601 值的日期时间字段在 iOS webkit 浏览器中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

ISO 8601:时间和日期的表示标准

将 Unix 纪元时间转换为扩展的 ISO8601

在 php 中获取带有 seconds.decimal-fraction-of-second 日期的 ISO 8601?

在 Excel 中解析 ISO8601 日期/时间(包括 TimeZone)

TSQL 日期时间 ISO 8601

如何在 PHP 中将日期时间转换为 ISO 8601