2012-06-14 27 views
4

我安裝了Opera瀏覽器,因爲它是目前唯一擁有HTML5 datetime日曆功能的瀏覽器。有兩種類型的datetime輸入:其中一個是datetime-local,其中省略了時區信息;另一個是datetime本身,其中添加了時區信息。是否需要瀏覽器檢測用於datetime輸入的用戶時區?

從我在Opera中觀察到的情況來看,時區固定爲UTC,而不是跟隨用戶輸入的時區datetime。這似乎與直覺相反,因爲用戶通常不知道UTC時間是什麼,更不用說根據他自己的時區來計算正確的UTC時間。

W3C是否要求UTC作爲datetime輸入的默認時區,或者Opera瀏覽器是否通過將時區固定爲UTC來做正確的事情?

在進一步的研究,這是我發現:

whatwg似乎暗示相反的方式:

  • 日期時間(具體的年,月,日,時)
  • 日期時間本地(具體的年,月,日,時,時區)

Mozilla documentation這樣說:

  • datetime:HTML5基於UTC時區輸入日期和時間(小時,分鐘,秒和小數部分)的控件。

W3C提出如下建議:

  • 用戶代理不得允許用戶設置的值,以一個非空的字符串,它是不是在UTC表示一個有效的全球日期和時間字符串,雖然用戶代理可以允許用戶設置和查看另一時區中的時間,並靜默地將時間轉換爲來自UTC時區的時間值。如果用戶代理提供用於選擇全局日期和時間的用戶界面,則該值必須設置爲以UTC表示的有效全局日期和時間字符串,表示用戶的選擇。

  • 向用戶顯示的格式與用於表單提交的格式無關。我們鼓勵瀏覽器根據用戶首選語言環境的約定使用顯示日期和時間的用戶界面。

這在我看來,W3C允許datetime輸入是在當地的格式,但需要提交表單的最終值在UTC格式表示。

回答

1

唯一問題你問的是:

W3C是否需要UTC成爲日期時間輸入默認的時區,或者是Opera瀏覽器通過固定時區爲UTC做正確的事情?

但正如你指出:

用戶代理可以允許用戶設置和查看的時間在另一個時區

所以回答你的問題是, W3C不要求需要 UTC的輸入,但允許它,所以Opera會做正確的事情。

這些不明確的規格是非常愚蠢的。事實上,它們相當適得其反。我不明白爲什麼他們甚至會打擾,如果他們不會真正定義所需的行爲。

+0

謝謝,我也這麼認爲。希望W3C可以修改他們的規格,以便在其他瀏覽器開始模仿Opera做什麼之前使'datetime'輸入更有用。 –

相關問題