HTML <input type="datetime-local"> 屿§å¤
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2021å¹´10æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
<input> è¦ç´ ã® datetime-local åã¯ãã¦ã¼ã¶ã¼ãç°¡åã«æ¥ä»ã¨æå»ãã¤ã¾ãå¹´ãæãæ¥ã¨æãåãå
¥åãããã¨ãã§ããå
¥åã³ã³ããã¼ã«ãçæãã¾ããã¦ã¼ã¶ã¼ã®ãã¼ã«ã«ã¿ã¤ã ã¾ã¼ã³ã使ç¨ããã¾ãã
試ãã¦ã¿ã¾ããã
<label for="meeting-time">Choose a time for your appointment:</label>
<input
type="datetime-local"
id="meeting-time"
name="meeting-time"
value="2018-06-12T19:30"
min="2018-06-07T00:00"
max="2018-06-14T00:00" />
label {
display: block;
font:
1rem "Fira Sans",
sans-serif;
}
input,
label {
margin: 0.4rem 0;
}
ãã®ã³ã³ããã¼ã«ã® UI ã¯ä¸è¬çã«ãã©ã¦ã¶ã¼ã«ãã£ã¦ç°ãªãã¾ãããã®ã³ã³ããã¼ã«ã¯ããã¼ã«ã«ã®æ¥ä»ã¨æå»ãæå³éãã«è¡¨ç¤ºãã¾ãããå¿ ãããã¦ã¼ã¶ã¼ã®å°åã®æ¥ä»ã¨æå»ã表示ããããã§ã¯ããã¾ãããè¨ãæããã°ããã®å ¥åãã£ã¼ã«ãã¯ãã¦ã¼ã¶ã¼ã®å°åã®ã¿ã¤ã ã¾ã¼ã³ã§ã¯ä¸æ£ãªçµã¿åããï¼å¤æéã®åãæ¿ãç§»è¡æéã® 1 æéãªã©ï¼ã§ãã£ã¦ããå¹´ãæãæ¥ãæãåãä»»æã«çµã¿åããããã¨ãã§ãã¾ãã
å¤
å ¥åæ¬ã«å ¥åãããæ¥ä»ã®å¤ã表ãæååã§ãããã®å ¥ååã§ä½¿ãããæ¥ä»ã¨æå»ã®å¤ã®å½¢å¼ã¯ããã¼ã«ã«æ¥ææååã§èª¬æããã¦ãã¾ãã
次ã®ããã«ã value 屿§ã«æ¥ä»ã¨æå»ãå
¥ãããã¨ã§ãå
¥åæ¬ã®ããã©ã«ãå¤ãè¨å®ãããã¨ãã§ãã¾ãã
<label for="party">ãã¼ãã£ã¼ãäºç´ããæ¥æãå
¥åãã¦ãã ããã</label>
<input
id="party"
type="datetime-local"
name="party-date"
value="2017-06-01T08:30" />
ä¸ç¹æ°ãä»ããªããã°ãªããªããã¨ã¯ã表示ãããæ¥ä»ã¨æå»ã®æ¸å¼ã¯å®éã® value ã¨ã¯ç°ãªããã¨ã§ãã表示ãããæ¥ä»ã¨æå»ã¯ããªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ããã®å ±åã«å¾ã£ã¦ã¦ã¼ã¶ã¼ã®ãã±ã¼ã«ã«ãã£ã¦æ¸å¼åããã¾ãããæ¥ä»ãæå»ã® value ã¯å¸¸ã« YYYY-MM-DDTHH:mm ã®æ¸å¼ã§ããä¾ãã°ãä¸è¨ã®å¤ããµã¼ãã¼ã«éä¿¡ããã¨ã party-date=2024-06-01T08:30 ã®ããã«ãªãã¾ãã
ã¡ã¢:
ãã®ãããªãã¼ã¿ã HTTP ã® GET ãéãã¦éä¿¡ãããã¨ãã³ãã³æåã URL 弿°ã«å«ããããã«ã party-date=2024-06-01T08%3A30 ã®ããã«ã¨ã¹ã±ã¼ãããå¿
è¦ããããã¨ããå¿ããªãããããè¡ãæ¹æ³ã®ä¸ã¤ã¨ã㦠encodeURI() ãåç
§ãã¦ãã ããã
次ã®ããã«ã JavaScript ã§ HTMLInputElement ã® value ããããã£ã使ç¨ãã¦æ¥ä»ã®å¤ãåå¾ãããè¨å®ããããããã¨ãã§ãã¾ãã
const dateControl = document.querySelector('input[type="datetime-local"]');
dateControl.value = "2017-06-01T08:30";
追å ã®å±æ§
ãã¹ã¦ã® <input> è¦ç´ ã§å
±éãã屿§ã«å ãã datetime-local åã®å
¥åæ¬ã¯æ¬¡ã®å±æ§ã«ã対å¿ãã¦ãã¾ãã
max
åãä»ããææ°ã®æ¥æã§ããè¦ç´ ã«å
¥åããã value ããã®ã¿ã¤ã ã¹ã¿ã³ããããå¾ã®å ´åãè¦ç´ ã¯å¶ç´æ¤è¨¼ã«å¤±æãã¾ãã max 屿§ã®å¤ã YYYY-MM-DDTHH:mm ã®æ¸å¼ã«å¾ã妥å½ãªæååã§ãªãå ´åãè¦ç´ ã¯æå¤§å¤ãæã¡ã¾ããã
ãã®å¤ã¯ min 屿§ã§æå®ããããã®ããå¾ããåãæ¥ä»ãæå®ããå¿
è¦ãããã¾ãã
min
åãä»ããæå¤ã®æ¥æã§ããããããåã®ã¿ã¤ã ã¹ã¿ã³ãã®å ´åãè¦ç´ ã¯å¶ç´æ¤è¨¼ã«å¤±æãã¾ãã min 屿§ã®å¤ã YYYY-MM-DDTHH:mm ã®æ¸å¼ã«å¾ã妥å½ãªæååã§ãªãå ´åãè¦ç´ ã¯æå°å¤ãæã¡ã¾ããã
ãã®å¤ã¯ max 屿§ã§æå®ããããã®ããåããåãæ¥ä»ãæå®ããå¿
è¦ãããã¾ãã
step
step 屿§ã¯å¤ãå¸çããç²åº¦ãæå®ããæ°å¤ãã¾ãã¯å¾è¿°ããç¹æ®ãªå¤ any ã§ããæ®µéã®åºæºå¤ããæ´æ°åã®å·®ãããå¤ã®ã¿ãæå¹ã§ããæ®µéã®åºæºå¤ã¯ãæå®ããã¦ããå ´å㯠minãæå®ããã¦ããªãå ´å㯠valueãã©ã¡ããæå®ããã¦ããªãå ´å㯠0ï¼Unix å
æã1970-01-01T00:00ï¼ã¨ãªãã¾ãã
datetime-local åã®å
¥åã®å ´åãstep ã®å¤ã¯ç§åä½ã§æå®ãããstep ã®å¤ã® 1000 åã«ç¸å½ããããªç§æ°ã¨ãã¦æ±ããã¾ãï¼å
é¨ã®æ°å¤ã¯ããªç§åä½ã§ãï¼ãããã©ã«ãå¤ã¯ 60 ã§ããã㯠1 åã示ãã¾ãã
æååå¤ã® any ã¯ãå»ã¿ããªããã©ã®å¤ã§ã許å¯ããããã¨ãæå³ãã¾ãï¼min ã max ãªã©ãä»ã®å¶ç´ã«ã¯å¶éããã¾ãï¼ãå®éã«ã¯ãdatetime-local å½¢å¼ã®å
¥åã®å ´åããã®ããã«ã¼ UI ã§ã¯ååä½ã§ãã鏿ã§ããªãããã60 ãå
¥åããã®ã¨åã广ã«ãªãã¾ãã
ã¡ã¢: ã¦ã¼ã¶ã¼ããã¼ã¿ãå ¥åããã¨ãã«ã¯å»ã¿ã®è¨å®ã«ã¯å¸çãããã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã¯ç´è¿ã®å¦¥å½ãªå¤ãåãè·é¢ã®å¤ã®é¸æè¢ã 2 ã¤ãã£ãå ´åã¯ãæ£ã®æ¹åã®æ¨å¥¨å¤ã«ä¸¸ãããã¾ãã
datetime-local å ¥åã®ä½¿ç¨
æ¥æå ¥åæ¬ã¯éçºè ã«ã¨ã£ã¦ä¾¿å©ãªãã®ã§ãæ¥æãç°¡åã«é¸ã¹ã¾ãããã¦ã¼ã¶ã¼ã®ãã±ã¼ã«ã«é¢ä¿ãªããµã¼ãã¼ã«éä¿¡ããããã¼ã¿å½¢å¼ãæ¨æºåã§ãã¾ããããããã¦ã¼ã¶ã¼ã®ãã¨ãèæ ®ãããã¨ãéè¦ã§ããã¢ããªã®æ©è½ã¨ãã¦å¿ è¦ã®ãªããã¼ã¿ãã¦ã¼ã¶ã¼ã«å ¥åããããã¨ã¯é¿ãã¾ãããã
å ¥åæ¬ã®å¤§ããã®å¶å¾¡
<input type="datetime-local"> ã¯ã size ã®ãããªã³ã³ããã¼ã«ã®å¤§ããã«é¢ãã屿§ã«ã¯å¯¾å¿ãã¦ãã¾ããã大ããã夿´ããå¿
è¦ãããå ´åã¯ã CSS ã使ç¨ããå¿
è¦ãããã¾ãã
ã¿ã¤ã ã¾ã¼ã³ã®è¨å®
datetime-local å
¥ååã¯ã³ã³ããã¼ã«ã®ã¿ã¤ã ã¾ã¼ã³ããã±ã¼ã«ãè¨å®ããæ¹æ³ãããã¾ããããã㯠datetime å
¥ååã§ã¯å©ç¨ã§ãã¾ãããããã®å
¥ååã¯å»æ¢ããã仿§æ¸ããåé¤ããã¾ãããåé¤ããã主ãªçç±ã¯ãã©ã¦ã¶ã¼ã®äºææ§ããªããã¦ã¼ã¶ã¼ã¤ã³ã¿ã¼ãã§ã¤ã¹ã使ãåæã決ã¾ã£ã¦ããªãã£ãããã§ããåã«æ¥ä»ã¨æå»ãè¨å®ããã³ã³ããã¼ã«ãç¨æãã¦ãå¥ãªã³ã³ããã¼ã«ã§å°åãè¨å®ããã»ããç°¡åã§ãã
ä¾ãã°ãã¦ã¼ã¶ã¼ããã°ã¤ã³ãã¦ããå ´æã«ãã£ã¦å°åãè¨å®ãããããªã·ã¹ãã ãéçºããå ´åãã¿ã¤ã ã¾ã¼ã³ã hidden å
¥ååã§æ¬¡ã®ããã«æä¾ãããã¨ãã§ãã¾ãã
<input type="hidden" id="timezone" name="timezone" value="-08:00" />
䏿¹ãã¦ã¼ã¶ã¼ã«æ¥æå
¥åã¨å
±ã«ã¿ã¤ã ã¾ã¼ã³ãå
¥åã§ããããã«ããå¿
è¦ãããå ´åã <select> è¦ç´ ãªã©ã§ã¿ã¤ã ã¾ã¼ã³ãå
¥åããææ®µãæä¾ãããã¨ãã§ãã¾ãã
<select name="timezone" id="timezone">
<option value="Pacific/Kwajalein">Eniwetok, Kwajalein</option>
<option value="Pacific/Midway">Midway Island, Samoa</option>
<option value="Pacific/Honolulu">Hawaii</option>
<option value="Pacific/Marquesas">Taiohae</option>
<!-- and so on -->
</select>
ã©ã¡ãã®å ´åããæ¥æã®å¤ã¨ã¿ã¤ã ã¾ã¼ã³ã®å¤ã¯ãµã¼ãã¼ã«å¥ã ã®ãã¼ã¿ãã¤ã³ãã¨ãã¦éä¿¡ãããããããµã¼ãã¼å´ã®ãã¼ã¿ãã¼ã¹ã«é©åã«æ ¼ç´ããå¿ è¦ãããã¾ãã
æ¤è¨¼
ããã©ã«ãã§ã¯ã <input type="datetime-local"> ã¯å
¥åãããå¤ã®æ¤è¨¼ãè¡ãã¾ãããã¦ã¼ã¶ã¼ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®å®è£
ã¯ä¸è¬çã«ãæ¥ä»ã§ãªããã®ã®å
¥åããããªãããã§ããããã¯ä¾¿å©ã§ããããããããã§ãå
¥åæ¬ã空ã®ã¾ã¾ã«ãããã (text åã«ãã©ã¼ã«ããã¯ãããã©ã¦ã¶ã¼ã«ããã¦) ç¡å¹ãªæ¥ä» (ä¾ãã° 4 æ 32 æ¥ãªã©) ãå
¥åããããããã¨ãå¯è½ã§ãã
min ããã³ max ã使ç¨ãã¦æå¹ãªæ¥ä»ãå¶éããã (æ¥ä»ã®æå¤§å¤ã¨æå°å¤ã®è¨å®ãåç
§)ã required 屿§ã使ç¨ãã¦æ¥æã®å
¥åãå¿
é ã«ããããããã¨ãã§ãã¾ãããã®çµæããã©ã¦ã¶ã¼ã§ã¯ãç¯å²ãå¤ããæ¥ä»ãç©ºã®æ¥ä»æ¬ãéä¿¡ãããã¨ããã¨ã¨ã©ã¼ã表示ãããã§ãããã
ä¾ãè¦ã¦ã¿ã¾ããããããã§æ¥ä»ã®æå°å¤ã¨æå¤§å¤ãè¨å®ããå ¥åæ¬ãå¿ é ã«ãã¾ããã
<form>
<div>
<label for="party">
叿ãããã¼ãã£ã¼ã®æ¥æã鏿ãã¦ä¸ãã (å¿
é ã 6 æ 1 æ¥åå 8:30 ï½ 6
æ 30 æ¥åå¾ 4:30)
</label>
<input
id="party"
type="datetime-local"
name="party-date"
min="2017-06-01T08:30"
max="2017-06-30T16:30"
required />
<span class="validity"></span>
</div>
<div>
<input type="submit" value="äºç´ããï¼" />
</div>
</form>
ä¸å®å ¨ãªæ¥ä» (ã¾ãã¯è¨å®ããç¯å²ãå¤ããæ¥ä») ãéä¿¡ãããã¨ããã¨ããã©ã¦ã¶ã¼ã¯ã¨ã©ã¼ã表示ãã¾ããä¾ãå®è¡ãã¦ã¿ã¾ãããã
ä¸ã®ä¾ã§ä½¿ç¨ãã¦ãã CSS ã示ãã¾ããããã§ã¯ :valid 㨠:invalid ã使ç¨ãã¦ãã¾ãã CSS ã®ããããã£ã使ç¨ãã¦ãç¾å¨ã®å¤ãæå¹ãã©ããã«åºã¥ãã¦å
¥åãã¹ã¿ã¤ã«è¨å®ãã¦ãã¾ããã¢ã¤ã³ã³ã¯ãå
¥åæ¬ã®é£ã® <span> ã«é
ç½®ãã¾ãã
div {
margin-bottom: 10px;
display: flex;
align-items: center;
}
label {
display: inline-block;
width: 300px;
}
input:invalid + span::after {
content: "â";
padding-left: 5px;
}
input:valid + span::after {
content: "â";
padding-left: 5px;
}
è¦å: HTML ã®ãã©ã¼ã æ¤è¨¼ã¯ãå ¥åããããã¼ã¿ãæ£ããå½¢å¼ã§ãããã¨ãä¿è¨¼ããã¹ã¯ãªããã®ä»£ç¨ã«ã¯ãªãã¾ããã HTML ã調æ´ãã¦æ¤è¨¼ããããæããããå®å ¨ã«åé¤ããããããã¨ã¯ã¨ã¦ãç°¡åã«ã§ãã¾ãã HTML ãå®å ¨ã«ãã¤ãã¹ãããµã¼ãã¼ã«ç´æ¥ãã¼ã¿ãéä¿¡ãããã¨ãå¯è½ã§ãããµã¼ãã¼å´ã®ã³ã¼ããåä¿¡ãããã¼ã¿ã®æ¤è¨¼ã«å¤±æããå ´åãä¸é©åãªå½¢å¼ã®ãã¼ã¿ï¼ã¾ãã¯å¤§ãããããã¼ã¿ã誤ã£ã種é¡ã®ãã¼ã¿ãªã©ï¼ãéä¿¡ãããå ´åã«åé¡ãçºçããããããããã¾ãã
ã¡ã¢:
datetime-local ã®å
¥åæ¬ã§ã¯ãæ¥æã®å¤ã¯å¸¸ã« YYYY-MM-DDTHH:mm ã®æ¸å¼ã«æ£è¦åããã¾ãã
ä¾
>datetime-local ã®åºæ¬çãªä½¿ç¨
æãåç´ãª <input type="datetime-local"> ã®ä½¿ç¨æ¹æ³ã¯ãä¸è¨ã®ããã«åºæ¬ç㪠<input> 㨠<label> è¦ç´ ã®çµã¿åããããã¨ã§ãã
<form>
<label for="party">ãã¼ãã£ã¼ãäºç´ããæ¥æãå
¥åãã¦ãã ãã:</label>
<input id="party" type="datetime-local" name="party-date" />
</form>
æ¥æã®æå¤§å¤ããã³æå°å¤ã®è¨å®
min ããã³ max 屿§ã使ç¨ãããã¨ã§ãã¦ã¼ã¶ã¼ãé¸ã¹ãæ¥æãå¶éãããã¨ãã§ãã¾ããæ¬¡ã®ä¾ã§ã¯ãæ¥æã®æå°å¤ã 2025-06-01T08:30ãæå¤§å¤ã 2025-06-30T16:30 ã«è¨å®ãã¦ãã¾ãã
<form>
<label for="party">ãã¼ãã£ã¼ãäºç´ããæ¥æãå
¥åãã¦ãã ãã:</label>
<input
id="party"
type="datetime-local"
name="party-date"
min="2025-06-01T08:30"
max="2025-06-30T16:30" />
</form>
2025 å¹´ 6 æä¸ã®æ¥ã®ã¿é¸æå¯è½ã§ãããã©ã¦ã¶ã¼ã«ãã£ã¦ãæå®ããå¤ä»¥å¤ã®æå»ã¯é¸æã§ããªãããã«ãªã£ã¦ãããã®ãæå¹ãªæ¥æã¯é¸æå¯è½ã§ããã :invalid 㨠:out-of-range ã«ä¸è´ããæ¤è¨¼ã«å¤±æãããã®ãããã¾ãã
ä¸é¨ã®ãã©ã¦ã¶ã¼ï¼Safariï¼ã§ã¯ãæ¥ä»ããã«ã¼ã¯ã©ã®æ¥ä»ã§ã鏿ã§ããããã«ç¾ãã¾ãããæ¥ä»ã鏿ãããã¨å¤ã¯æå¹ãªç¯å²ã«åºå®ããã¾ãã
æå¹ãªç¯å²ã«ã¯ min 㨠max ã®å¤ã®éã®ãã¹ã¦ã®æå»ãå«ã¾ãã¾ããæå»ã¯ç¯å²å
ã®æåã®æ¥ã¨æå¾ã®æ¥ã§ã®ã¿å¶ç´ããã¾ãã
ã¡ã¢:
step 屿§ã使ç¨ãã¦ãæå»ãå¢å ãããã³ã«ã¸ã£ã³ãããæ¥æ°ãå¤ãããã¨ãã§ããã¯ãã§ãï¼ä¾ãã°ãåææ¥ã ãã鏿å¯è½ã«ãããå ´åãªã©ï¼ãããããããã¯å·çæã®å®è£
ã§ã¯å¹æçã«åä½ãã¦ããªãããã§ãã
æè¡çæ¦è¦
| å¤ | ï¼ãã¼ã«ã«ã¿ã¤ã ã¾ã¼ã³ã§ã®ï¼æ¥ä»ã¨æå»ã表ãæååãã¾ãã¯ç©ºæ¬ã |
| ã¤ãã³ã |
change ããã³ input
|
| 対å¿ãã¦ããå ±é屿§ |
autocomplete,
list,
readonly,
step
|
| IDL 屿§ |
list,
value,
valueAsDate,
valueAsNumber
|
| DOM ã¤ã³ã¿ã¼ãã§ã¤ã¹ | HTMLInputElement |
| ã¡ã½ãã |
select(),
stepDown(),
stepUp()
|
| æé»ã® ARIA ãã¼ã« | 対å¿ãããã¼ã«ãªã |
仿§æ¸
| 仿§æ¸ |
|---|
| HTML > # local-date-and-time-state-(type=datetime-local) > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- å
¨è¬çãª
<input>ããã³ãã®æä½ã«ä½¿ç¨ããHTMLInputElementã¤ã³ã¿ã¼ãã§ã¤ã¹ <input type="date">ããã³<input type="time">- HTML ã§ä½¿ãããæ¥ä»ãæå»ã®å½¢å¼
- æ¥ä»ã¨æå»ã®é¸æã®ãã¥ã¼ããªã¢ã«