我安裝了Opera瀏覽器,因爲它是目前唯一擁有HTML5 datetime
日曆功能的瀏覽器。有兩種類型的datetime
輸入:其中一個是datetime-local
,其中省略了時區信息;另一個是datetime
本身,其中添加了時區信息。是否需要瀏覽器檢測用於datetime輸入的用戶時區?
從我在Opera中觀察到的情況來看,時區固定爲UTC,而不是跟隨用戶輸入的時區datetime
。這似乎與直覺相反,因爲用戶通常不知道UTC時間是什麼,更不用說根據他自己的時區來計算正確的UTC時間。
W3C是否要求UTC作爲datetime
輸入的默認時區,或者Opera瀏覽器是否通過將時區固定爲UTC來做正確的事情?
在進一步的研究,這是我發現:
whatwg似乎暗示相反的方式:
- 日期時間(具體的年,月,日,時)
- 日期時間本地(具體的年,月,日,時,時區)
- datetime:HTML5基於UTC時區輸入日期和時間(小時,分鐘,秒和小數部分)的控件。
W3C提出如下建議:
用戶代理不得允許用戶設置的值,以一個非空的字符串,它是不是在UTC表示一個有效的全球日期和時間字符串,雖然用戶代理可以允許用戶設置和查看另一時區中的時間,並靜默地將時間轉換爲來自UTC時區的時間值。如果用戶代理提供用於選擇全局日期和時間的用戶界面,則該值必須設置爲以UTC表示的有效全局日期和時間字符串,表示用戶的選擇。
向用戶顯示的格式與用於表單提交的格式無關。我們鼓勵瀏覽器根據用戶首選語言環境的約定使用顯示日期和時間的用戶界面。
這在我看來,W3C允許datetime
輸入是在當地的格式,但需要提交表單的最終值在UTC格式表示。
謝謝,我也這麼認爲。希望W3C可以修改他們的規格,以便在其他瀏覽器開始模仿Opera做什麼之前使'datetime'輸入更有用。 –