4

我安装了 Opera 浏览器,因为它是目前唯一拥有 HTML5datetime日历功能的浏览器。有两种类型的datetime输入:一种datetime-local是省略时区信息的地方;另一个是datetime添加时区信息的地方。

根据我在 Opera 中观察到的情况,时区固定为 UTC,而不是遵循用户的时区进行datetime输入。这似乎违反直觉,因为用户通常不知道 UTC 时间是什么,更不用说根据自己的时区计算正确的 UTC 时间了。

W3C 是否要求 UTC 作为datetime输入的默认时区,或者 Opera 浏览器是否通过将时区固定为 UTC 来做正确的事情?

经过进一步研究,这是我发现的:

whatwg似乎提出了相反的建议:

  • datetime(特定年、月、日、时间)
  • datetime-local(特定年、月、日、时间、时区)

Mozilla 文档是这样说的:

  • datetime: HTML5 用于输入基于 UTC 时区的日期和时间(小时、分钟、秒和秒的小数部分)的控件。

W3C提出以下建议:

  • 用户代理不得允许用户将值设置为非空字符串,该字符串不是以 UTC 表示的有效全球日期和时间字符串,尽管用户代理可能允许用户在另一个时区静默设置和查看时间在值中转换与 UTC 时区的时间。如果用户代理提供用于选择全局日期和时间的用户界面,则该值必须设置为以 UTC 表示的有效全局日期和时间字符串,表示用户的选择。

  • 向用户显示的格式与用于表单提交的格式无关。鼓励浏览器使用根据用户首选区域设置的约定来显示日期和时间的用户界面。

在我看来,W3C 允许datetime输入为本地格式,但要求表单提交的最终值以 UTC 格式表示。

4

1 回答 1

1

你问的唯一问题是:

W3C 是否要求 UTC 作为日期时间输入的默认时区,或者 Opera 浏览器是否通过将时区固定为 UTC 来做正确的事情?

但正如你所指出的:

用户代理可能允许用户设置和查看另一个时区的时间

所以你的问题的答案是 W3C不需要UTC 输入,但确实允许它,所以 Opera 无论如何都会做正确的事情。

These kinds of ambiguous specifications are pretty silly. Actually, they are fairly counterproductive. I don't understand why they even bother if they're not going to actually define the required behavior.

于 2013-06-09T19:20:02.340 回答