[4]
[[HTML]] の [CODE(HTMLe)@en[[[input]]]]
[[要素]]は、 [CODE(HTMLa)@en[[[type]]]]
[[属性]]を [DFN@en[[CODE(HTML)@en[[[datetime]]]]]]
にすると、 [[UTC]] における[[日時]]を指定する[[フォーム制御子]]となります。

* 仕様書

[5]
- [[Web Forms 2.0]]
-- [CSECTION@en[2.4. Extensions to the [CODE(HTMLe)@en[[[input]]]] element]]
<IW:WF2:"#extensions">

[[#comment]]


** 値


*** 構文

[6]
[[フォーム提出]]などで用いられる値は、
次のような構文を持つ、 [[ISO 8601]]
の[[プロファイル]]です。
[SRC@en[WF2 2.4]]

= [[年]]: 4桁以上の[[数字]] ([CODE(char)[[[0]]]]〜[CODE(char)[[[9]]]])
= [CODE(char)[[[-]]]]
= [[月]]: 2桁の[[数字]]
= [CODE(char)[[[-]]]]
= [[日]]: 2桁の[[数字]]
= [CODE(char)[[[T]]]]
= [[時]]: 2桁の[[数字]]
= [CODE(char)[[[:]]]]
= [[分]]: 2桁の[[数字]]
= 省略可能:
== [CODE(char)[[[:]]]]
== [[秒]]: 2桁の[[数字]] (省略は[[零]]を表す)
== 省略可能:
=== [CODE(char)[[[.]]]]
=== [[秒]]未満: 1桁以上の[[数字]] (省略は[[零]]を表す)
= [CODE(char)[[[Z]]]] ([[UTC]] であることを表す)

[[数字]]の連続は[[十進数]]を表し、
必要なら[[零埋め]]します。

[[#comment]]


*** 暦

[12]
[[利用者エージェント]]は、
[[先発グレゴリオ暦]]を用いた値を[[提出]]に使用[['''しなければなりません''']]。
また、 [CODE(HTML)[[[0001-01-01]]]] 以降に対応[['''しなければなりません''']]。
[SRC@en[WF2 2.4]]

[14]
[[閏秒]]は、無視[['''しなければなりません''']]。
[SRC@en[WF2 2.4]]

[[#comment]]


*** 例

[7] [CODE(HTML)[1995-12-31T23:59:59.99Z]]
[SRC@en[WF2 2.4]]

[8] [CODE(HTML)[1996-01-01T00:00Z]]
[SRC@en[WF2 2.4]]

>>7 より10[[ミリ秒]]後を表します。

[[#comment]]


*** メモ

[15] [[零点]]は、 [CODE(HTML)@en[[[1970-01-01T00:00:00.0Z]]]]
です。
[SRC@en[WF2 2.4.2]]

[[#comment]]


** 属性との関係

[9]
[CODE(HTMLa)@en[[[step]]]] [[属性]]は、
[[秒]]単位の精度を表します。
[[既定値]]は [CODE(HTML)[[[60]]]] (1[[分]]) です。
[SRC@en[WF2 2.4]]

[[#comment]]


** レンダリング

[10] '''Widget'''

[[利用者エージェント]]は、[[日時]]を入力させるための適当な
[[widget]] を用いることが期待されています。
また、[[DOM]] や[[フォーム提出]]で用いられる書式では
[[UTC]] が使われますが、[[利用者]]に対しては適切な[[地方時]]による表示を[['''して構いません''']]。
その場合でも、[[地方時]]依存ではなく、
[[世界時]]を選択しているのだということを[[利用者]]にも明らかに[['''するべきです''']]。
[SRC@en[WF2 2.4]]

[13]
[[利用者エージェント]]は、
過去の[[日付]]には適切な[[暦]]を使って[[利用者]]に提示して構いません。
例えば、古い日付には[[ユリウス暦]]を使ったり、
[[中国暦]]を使ったりして構いません。
[SRC@en[WF2 2.4]]
[[日本]]の場合、[[元号]]や[[神武紀元]]で代用または併記しても構いません。

* 実装

[61] 
年〜秒で個別に用意された[[フォーム制御子]]を、対応ブラウザでは
[CODE(HTML)@en[[[datetime]]]] または [CODE(HTML)@en[[[datetime-local]]]] に置き換えるやつ。

スクリプト: <http://suika.fam.cx/www/style/ui/widget-datetime.js.u8>

利用例: [CITE[widget-datetime.js]] ([TIME[2008-12-21 11:26:55 +09:00]] 版) <http://suika.fam.cx/~wakaba/-temp/test/misc/jswidgets/datetime/widget-datetime-1.html>

* 関連

[11]
類似の[[フォーム制御子]]として、
[[地方時]]を入力する [CODE(HTML)@en[[[datetime-local]]]]、
[[日付]]だけを入力する [CODE(HTML)@en[[[date]]]]、
[[月]]だけを入力する [CODE(HTML)@en[[[month]]]]、
[[週]]を入力する [CODE(HTML)@en[[[week]]]]、
[[時刻]]だけを入力する [CODE(HTML)@en[[[time]]]]
があります。

* 歴史

[REFS[
- [27] [CITE[Issue 175080 - chromium - Disabled support for <input type=datetime /> - An open-source browser project to help move the web forward. - Google Project Hosting]]
( ([TIME[2013-03-02 12:11:34 +09:00]] 版))
<https://code.google.com/p/chromium/issues/detail?id=175080>
- [28] [CITE[''''''[''''''whatwg'''''']'''''' Forms-related feedback]]
( ([TIME[2013-07-30 08:21:50 +09:00]] 版))
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-July/040277.html>
]REFS]

[1] [CITE[IRC logs: freenode / #whatwg / 20150209]]
([TIME[2015-02-11 16:46:28 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20150209>

[2] [CITE@en[Fix #336: remove <input type=datetime> · whatwg/html@80ba4fa]]
([TIME[2015-12-03 21:04:09 +09:00]] 版)
<https://github.com/whatwg/html/commit/80ba4fa24e5d3d81a10aa1bbd8a2f72f4bcc3f7c>