input[type=date]で指定できる日付の上限
Chromeでこんな風に表示されるやつです。
キーボードから入力するときは、十分な桁数を入力することで次のフィールドにカーソルが移動します。月のところで 05
って入力するとか。
じゃあ年のところには 2015
って入れればいいんでしょ?と思うと、そうはいかない。6桁入力してやっと移動する。
なぜ6桁?
これは Date 型の最大値と一致するようです。HTML5の標準を読んでも値域についての記述が見つからなかったので、見た感じそうだとしか言えないのですが…valueAsDate
というIDL属性があるので、まあありそうな話ではあります。
Date型の最大値は
The actual range of times supported by ECMAScript Date objects is slightly smaller: exactly –100,000,000 days to 100,000,000 days measured relative to midnight at the beginning of 01 January, 1970 UTC. This gives a range of 8,640,000,000,000,000 milliseconds to either side of 01 January, 1970 UTC.
つまり 275760年9月13日 なので、input 要素の挙動と合いますね。
「27万年も運用する予定ないんだけど」
ですよね。4桁入力したら次のフィールドに移動してほしいです。
これを実現するには、max
属性に4桁年を入れてやればよいです。
<input type="date" max="9999-12-31" />
maxなし
maxあり
なお、 時は流れた。input[type=date]
は今のところChrome系しか対応してないのであしからず。