HTML <input type="time">: 시간 선택
time 유형의 <input> 요소는 사용자가 시간을 선택할 수 있는 컨트롤입니다. 입력 컨트롤의 외형은 브라우저와 운영체제에 따라 다릅니다. 값은 hh:mm 또는 hh:mm:ss 형식으로 정규화됩니다.
<label for="time">일정의 시작 시간을 선택하세요:</label>
<input type="time"
       id="time"
       max="18:00"
       min="09:00"
       step="3600">
input {
  margin-top: 0.4rem;
}
불러오는 중...
값
time 유형의 value 특성은 24시간 형식의 hh:mm, 초 단위 포함 (step 특성 사용하기를 참고하세요) 시 hh:mm:ss여야 합니다.
JavaScript에서는 HTMLInputElement의 value로 값을 가져올 수 있습니다.
const dateControl = document.querySelector('input[type="time"]')
dateControl.value = '15:30'
console.log(dateControl.value) // '15:30'
다른 대부분의 데이터 유형과 달리, 시간은 주기적 도메인(periodic domain)입니다. 즉, 값이 최대치에 도달하면 처음으로 돌아가 최소치와 같아집니다. 예를 들어 min=14:00이고 max=02:00인 time 입력 칸에서 유효한 시간 값은 오후 2시부터 시작해 자정을 거쳐 오전 2시까지입니다.
추가 특성
time 유형은 모든 <input> 요소가 공유하는 특성 외에도 아래의 특성을 추가로 지원합니다.
- max
- 선택할 수 있는 시간의 최대 한계입니다. 입력한 값이 이 시간 이후인 경우 제약 검증에 실패합니다. - max특성은 반드시 값에서 설명한 올바른 형식의 시간 문자열이어야 합니다. 유효하지 않은 값을 입력하면 최대 한계를 지정하지 않은 것으로 취급합니다.
- min
- 선택할 수 있는 시간의 최소 한계입니다. 입력한 값이 이 시간 이후인 경우 제약 검증에 실패합니다. - min특성은 반드시 값서 설명한 올바른 형식의 시간 문자열이어야 합니다. 유효하지 않은 값을 입력하면 최대 한계를 지정하지 않은 것으로 취급합니다.
- step
- 선택 가능한 값의 간격입니다. 숫자 또는 - any를 지정할 수 있습니다. 간격에 맞는 날짜만 선택할 수 있습니다. 간격의 시작점은- min특성이 존재하면- min,- value가 존재하면- value, 둘 다 존재하지 않으면- 00:00입니다.- 숫자를 지정할 경우, 수의 단위는 1초입니다. - step의 기본 값은- 60이므로 기본 간격은 1분입니다.- any를 지정하거나 특성을 누락할 경우- 60을 지정한 것과 같습니다.
유효성 검증
time 유형의 기본 설정에서는 값의 형식만 검증합니다. 브라우저 기본 인터페이스에 유효하지 않은 형식의 값을 입력할 수 없다는 점은 유용합니다.
min과 max 특성으로 선택 가능한 시간을 제한하는 경우, 범위를 벗어난 값을 제출하려고 하면 오류를 표시합니다.
required 특성으로 날짜를 반드시 입력하게 설정할 수 있습니다. 사용자가 날짜를 입력하지 않고 양식을 제출하려고 하면 브라우저가 오류를 표시합니다.
클라이언트 사이드 유효성 검증은 서버에서의 검증을 대체할 수 없습니다. HTML을 직접 수정할 수도 있고, 아예 양식을 우회하여 서버에 직접 값을 제출하는 것도 가능합니다. 서버가 값을 올바르게 검증하지 못한 경우 망가졌거나 지나치게 큰 데이터로 인해 장애가 발생할 수 있습니다.
예제
step 특성 사용하기
step 특성을 사용하면 사용자가 키보드 위와 아래 화살표 키 등을 사용해 시간 값을 올리거나 내릴 때 변경되는 간격을 조절할 수 있습니다.
step의 기본 값은 60, 즉 1분입니다. 기본 값에서 대부분의 사용자 에이전트는 시와 분 선택 UI만 표시하고 초는 표시하지 않습니다. step 특성을 60의 배수가 아닌 수로 지정하면 초가 표시됩니다.
<label for="time">일정의 시작 시간을 선택하세요:</label>
<input type="time"
       id="time"
       max="18:00"
       min="09:00"
       step="10">
선택 가능한 시간 범위 제한하기
min과 max 특성을 지정하면 사용자가 선택할 수 있는 시간을 특정 범위로 제한할 수 있습니다. 이 예제에서는 08시부터 12시까지의 시간만 선택할 수 있도록 입력 범위를 제한합니다.
<label>출근일을 선택하세요:
  <input type="time" name="schedule" min="08:00" max="12:00" />
</label>
불러오는 중...
명세
브라우저 호환성
| 데스크톱 | 모바일 | ||||||
|---|---|---|---|---|---|---|---|
| iOS | Android | ||||||
| Safari | Chrome | Firefox | Safari | Chrome | Firefox | Samsung Internet | |
| type="time" | |||||||