【发布时间】:2012-06-17 02:09:21
【问题描述】:
我安装了 Opera 浏览器,因为它是目前唯一拥有 HTML5 datetime 日历功能的浏览器。 datetime 输入有两种类型:一种是datetime-local,其中省略了时区信息;另一个是datetime 本身,其中添加了时区信息。
根据我在 Opera 中观察到的情况,时区固定为 UTC,而不是遵循datetime 输入的用户时区。这似乎违反直觉,因为用户通常不知道 UTC 时间是什么,更不用说根据自己的时区计算正确的 UTC 时间了。
W3C 是否要求 UTC 是 datetime 输入的默认时区,或者 Opera 浏览器是否通过将时区固定为 UTC 来做正确的事情?
经过进一步研究,这是我的发现:
whatwg 似乎暗示了相反的方式:
- 日期时间(具体年、月、日、时间)
- 本地日期时间(特定年、月、日、时间、时区)
- datetime:HTML5 用于输入基于 UTC 时区的日期和时间(小时、分钟、秒和秒的小数)的控件。
W3C 提出以下建议:
用户代理不得允许用户将值设置为非空字符串,该字符串不是以 UTC 表示的有效全球日期和时间字符串,但用户代理可能允许用户设置和查看时间在另一个时区中,并以静默方式将时间与值中的 UTC 时区相互转换。如果用户代理提供用于选择全局日期和时间的用户界面,则该值必须设置为以 UTC 表示的有效全局日期和时间字符串,表示用户的选择。
向用户显示的格式与用于表单提交的格式无关。鼓励浏览器使用根据用户首选区域设置的约定来显示日期和时间的用户界面。
在我看来,W3C 允许 datetime 输入为本地格式,但要求表单提交的最终值以 UTC 格式表示。
【问题讨论】:
标签: html datetime browser timezone utc