W3C home > Mailing lists > Public > public-html-ig-zh@w3.org > November 2011

<time> 的時間格式(原:<time> 的時間間隔格式)

From: Kang-Hao (Kenny) Lu <kennyluck@w3.org>
Date: Mon, 28 Nov 2011 17:57:37 +0800
Message-ID: <4ED35B11.5060605@w3.org>
To: Yuan Chao <yuanchao@gmail.com>, Hawkeyes Wind <hawkeyes0.cn@gmail.com>
CC: W3C HTML5 中文興趣小組 <public-html-ig-zh@w3.org>
我原本主要是想討論的是時間間隔/時間長度/持續時間的格式,ISO8601 的格式長
得像是:P1Y2M10DT2H30M ,不過這裡看起來的時間*點*的格式也有不少可以討論
的地方(時間間隔的部份分開討論好了)。我花了一些時間把相關的 HTML 規範翻
譯跟上,希望討論有一個參考依據。回得有點晚很抱歉。

(11/11/18 11:43), Hawkeyes Wind wrote:
> 不过如果不出 现字母的话(比如:2011-11-18 11:33:54)是否更好些。

基本上我支持這個想法,畢竟這個格式我是覺得比較容易親近。HTML 定義的「合
法的本地日期與時間字串」[1] 跟「合法的全球日期與時間字串」[2](用在
<time>[3] 上或是 input type=datetime(-local)[4] 上)大致是:

[[
照順序:
1. 表示日期的合法日期字串。
2. U+0054 LATIN CAPITAL LETTER T 字符(T)。
3. 表示時間的合法時間字串。
4. (全球日期用的時區偏移語法)
]]

也就是第二部應該改成「'T' 或是 ' '(空白)」,我注意到 Python 的
datetime 模組在 str(datetime) 的時候就是用空白而不是 'T'。我猜現在網上也
有不少用空白當分隔符的時間,有人看到的話麻煩提供一下,可以當成有這個需求
的一個證據。

不過還有幾個問題:
1. 用空白當間隔符是不是不合 ISO8601?(雖然 HTML 的時間格式也不是一定要
都用 ISO8601 的,至少現在新提出的持續時間格式就不是)
2. 解析的程式庫中有多少不支援空白當作間隔符?Python datetime 模組裡面沒
有解析 ISO8601 的函數,隨便找到的一個 Python 的 ISO8601 的庫[5]是支援任
何東西當作分隔符。畢竟 <time> 的一個使用情節是幫助爬蟲,其他伺服器端的腳
本語言的支援情形如何呢?
3. 我試了一下 FF8 的 Date.parse() 是不支持空白當作間隔符(參考資料[6])
的,這邊的標準有點亂[7],不過假如說這裡 ECMAScript 跟 HTML 不合會不會延
伸出別的問題?

[1]
http://www.w3.org/html/ig/zh/wiki/HTML5/common-microsyntaxes#valid-local-date-and-time-string
[2]
http://www.w3.org/html/ig/zh/wiki/HTML5/common-microsyntaxes#valid-global-date-and-time-string
[3]
http://www.w3.org/html/ig/zh/wiki/HTML5/text-level-semantics#the-time-element
[4]
http://www.w3.org/html/ig/zh/wiki/HTML5/states-of-the-type-attribute#date-and-time-state

[5]
http://code.google.com/p/pyiso8601/source/browse/trunk/iso8601/iso8601.py#17
[6]
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse
[7] http://people.mozilla.org/~jorendorff/es5.html#sec-15.9.4.2 是只要求
瀏覽器支援跟現在 HTML 支援的格式差不多的情形,但*沒要求*不支持其他格式,
比如說 FF8 就支持英文格式,這裡據說各瀏覽器的兼容狀況很亂。

(11/11/18 11:43), Hawkeyes Wind wrote:
> 如果说对于非 英语的人士来说,分两部分人——程序员和用户。
> 那么对于程序员来讲,不用打字母是最好的,因此这里不论是欧洲格式、美洲格
> 式 或者东亚格式都无所谓。 

這句話我猜你的意思是有些語言/程式庫(比如說 ECMAScript...)不支持輸出
ISO8601 的寫法所以這裡應該支援多一點格式以利輸出?但是另一方面來講,假如
支持更多格式,就會變成是處理資料的人需要打比較多字母了。我會認為最好是有
一個差不 多是 ISO8601 的標準就好。

不過統計來說輸出 HTML 的軟體工程師應該是比輸入的還多就是了,這裡很難說怎
麼樣比較好。

使用者的問題換一篇再討論。

>> 那么对于程序员来讲,不用打字母是最好的,因此这里不论是欧洲格式、美洲格式 或者东亚格式都无所谓。
> 我直接想到的問題是,接受使用西文格式的話,是不是也要支援中文? :)

的確是只要支援了任何一個不阿拉伯數字的格式就開始會有不同地方的人抗議,可
能會有沒完沒了的問題。我猜 ECMA 的人也因為這個問題很頭大。


此致

Kenny
Received on Monday, 28 November 2011 09:58:11 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:43:49 UTC