* [CODE(HTMLe)@en[input]] [CODE(HTMLa)@en[type]] [CODE(HTML)@en[datetime]] (HTML) [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]] [[#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]]]] に置き換えるやつ。 スクリプト: 利用例: [CITE[widget-datetime.js]] ([TIME[2008-12-21 11:26:55 +09:00]] 版) * 関連 [11] 類似の[[フォーム制御子]]として、 [[地方時]]を入力する [CODE(HTML)@en[[[datetime-local]]]]、 [[日付]]だけを入力する [CODE(HTML)@en[[[date]]]]、 [[月]]だけを入力する [CODE(HTML)@en[[[month]]]]、 [[週]]を入力する [CODE(HTML)@en[[[week]]]]、 [[時刻]]だけを入力する [CODE(HTML)@en[[[time]]]] があります。