<time> 的時間間隔格式

由於現在討論的趨勢是把 <time> 拿回來,並加上間隔的語法(請參考我翻譯的更
改提議書[1])以 ISO8601[2] 為主,Hixie(Ian Hickson,HTML 規範編輯)在統
計有關這個語法意見的問卷[3]。

歡迎大家直接把[3]的結果寄給他,或是在這個列表上分享一下。

[1] http://www.w3.org/html/ig/zh/wiki/Time_element
[2] http://en.wikipedia.org/wiki/ISO_8601#Durations
[3] http://www.whatwg.org/specs/web-apps/current-work/temp

我基本上覺得:
* 就非英文母語人士來說,從文字首還要回憶是「分」、「秒」哪個英文字我覺得
蠻麻煩的,目前我最喜歡的格式照 ISO8601 是 PT[hh]:[mm]:[ss] 這樣。(例:3
分20秒是 "PT00:03:20")
* 若是 P 開頭,那就應該照 ISO8601 吧,不應該容許不一樣的語法。
* 一般常用的間隔只有兩三個部份,所以我不覺得會特別有可讀性的問題,也不覺
得如果是 "3m20s" 這種情形應該容許 "3m" 跟 "20s" 中間有空格或是其他間隔字
符。至於錯誤處理,沒什麼感覺,算全錯好了。
* 如果一定要用英文字母的話,畢竟是「機械可讀資料」我覺得一個字母就夠了,
有人提到 Month 跟 Minute 重複的問題,考量到 Month 跟 Minute 會一起出現的
機率很低,又用  Minute 應該比 Month 多,我會傾向於用這種規則:
** 如果前面有 y 或是後面有 d,則這個 m 是月份。(如果要描述「一年一分」
的話要用 "1yT1m",不過反正很少有人會這樣做)
** 否則,m 是 Minute。(所以「一個月」的話,要寫 "0y1m" 或是 "1m0d",這
裡不知道會不會比較不自然一點...不過怎麼說月本來就不是一個很精準的單位...)
* 字母大小寫無關。

所以我填的問卷結果如下(誇號裡的是我認為的部份):

<time datetime="P1MT1M">
Conformance: yes, conforming
Meaning: 1 month, 60 seconds


<time datetime="P.1S">
Conformance: no, found "." where expected digit
Meaning: none

<time datetime="P1 S">
Conformance: no, unexpected white space
Meaning: 1 second (none)


<time datetime="1H">
Conformance: yes, conforming
Meaning: 3600 seconds

<time datetime="1 H">
Conformance: yes, conforming(no,不該有空格)
Meaning: 3600 seconds(none)

<time datetime="1h">
Conformance: yes, conforming
Meaning: (3600 seconds)

<time datetime="1 h">
Conformance: yes, conforming (no,不該有空格)
Meaning: (none)

<time datetime="1HOUR">
Conformance: (no,超過一個英文字母)
Meaning: (none)

<time datetime="1hour">
Conformance: (no,超過一個英文字母)
Meaning: (none)


<time datetime="1D1H">
Conformance: yes, conforming
Meaning: 90000 seconds

<time datetime="1D 1H">
Conformance: (no,不該有空格)
Meaning: (none)

<time datetime="1 D 1 H">
Conformance: (no,不該有空格)
Meaning: (none)


<time datetime="1mo1min">
Conformance: yes, conforming (no,超過一個英文字母)
Meaning: 1 month, 60 seconds (none)

<time datetime="1mon">
Conformance: (no,超過一個英文字母)
Meaning: (none)

<time datetime="1min">
Conformance: (no,超過一個英文字母)
Meaning: (none)

<time datetime="1mont">
Conformance: (no,超過一個英文字母)
Meaning: (none)

<time datetime="1minutes">
Conformance: (no,超過一個英文字母)
Meaning: (none)

<time datetime="1Y1M">
Conformance: (yes, conforming)
Meaning: (13 months)

<time datetime="1H1M">
Conformance: (yes, conforming)
Meaning: (3660 seconds)


呂 康豪(Kenny), 中文興趣小組W3C連絡人
Google+: https://plus.google.com/112088462407783855918/posts
新浪微博: http://t.sina.com.cn/1950042164

Received on Thursday, 17 November 2011 12:36:47 UTC