[3] 時間は、秒の数を表しています >>1。構文上は秒のみならず、 分、時、日、週単位でも記述できます。しかし月の長さは変化しますから、 月や年では記述できません >>1。
[24] HTML 独自の形式は、時間時刻部品を1つ以上連ねたものです。 ただし時間時刻部品スケールは異なったものでなければなりません。順序は問いません。 >>1 全体としては、各部品が表す時間の和を表します。
[26] 時間時刻部品とは、 次のような文字列です >>1。
[33] ただし >>29 は >>31 が秒単位の場合だけ使えます >1。
[34] 時間時刻部品スケールは次のいずれかです >>1。
文字 | 意味 | スケール |
W | 週 | 604800 |
D | 日 | 86400 |
H | 時 | 3600 |
M | 分 | 60 |
S | 秒 | 1 |
[35] >>34 の文字はASCII大文字・小文字不区別です >>1。
[21] ISO 8601 ベースの形式は、次のようなものです >>1。
[22] >>6 と >>9 は、どちらかまたは両方が必要です >>1。
[23] >>11、>>14、>>17 は、1つ以上が必要です >>1。
[52] 妥当なvEvent時間文字列とは、 次のような文字列です >>51。
[71] ただし >>54 を指定した場合は >>57、>>60 は使えません。 >>57 と >>60 は片方または両方を指定できます。 >>62、>>65、>>68 は1つ以上指定できますが、 >>62 と >>68 の2つだけの指定はできません。 >>51
[36] 時間文字列を構文解析するには、 次のようにします >>1。
[37] 与えられた文字列が次の正規表現に一致するか調べます。
\s* P? (?: T \s* | [0-9]+ \s* [YyWwDdHhMmSs] \s* | [0-9]+\.[0-9]+ \s* [Ss] \s* | \.[0-9]+ \s* [Ss] \s* )+
[38] ここで \s
は、 HTML における空白文字を表します。
[39] 「M」は、「P」や「Y」の後なら月と解釈し、それ以外なら分と解釈します。
[42] 「W」、「D」、「H」、「S」は >>34 の通り解釈します。
[40] 数字と小数点は十進数として解釈します。直後の文字を単位とする時間として解釈します。
[43] >>37 に一致しない場合、数字を含まない場合、年や月が含まれる場合は、 失敗を返します。それ以外の場合は、個々の部分で表される時間の和を返します。
[45] >>3 のような理由で月や年を単位とすることはできませんが、 この構文解析の方法は将来の拡張や (HTML 以外での) ISO 8601 形式の誤解釈を防ぐため、 月や年にも対応しています (が年や月を含んでいると、失敗します)。
[48] 妥当な時間文字列 (>>4) は、 time
要素で使われます。
[50] 妥当なvEvent時間文字列 (>>52) は、 vEvent マイクロデータの duration
の値として使われます >>47。
[74] 妥当なvEvent時間文字列 (>>52) は、HTMLの時刻の範囲の形式にも使われます。
[46] HTML では媒体要素のための 12:34
のような時間形式もありましたが、
実装されずに削除されています。
[47] Refresh
では秒単位の整数が使われています。
[77] [at] (0) Introduce a vEvent vocabulary. (Hixie著, ) <https://github.com/whatwg/html/commit/425754254022e0ca969a77965cd71603f6bf5255>