<input type="datetime-local">
<input>
태그의 type="datetime-local"
은
사용자가 날짜와 시간을 한 번에 쉽게 입력할 수 있도록 날짜와 시간 선택 인터페이스를 제공하는 입력 필드를 나타냅니다.
브라우저가 제공하는 달력과 시간 선택 도구를 통해서 사용자가 선택한 연도, 월, 일, 시, 분을 쉽게 입력받을 수 있습니다.
날짜와 시간 선택 인터페이스는 브라우저와 운영 체제에 따라 다르게 표시될 수 있습니다. 하지만, 기능은 동일합니다.
입력되는 날짜와 시간 형식은 어떻게 되나요?
YYYY-MM-DDThh:mm
2024-12-10T15:30
2024년 12월 10일 15시 30분
이 형식은 날짜 형식인 YYYY-MM-DD
(예: 2024-12-10
)와 시간 형식을 알리는 구분 문자인 T
그 다음으로 24시간 형식인 hh:mm
(예: 15:30
)으로 구성됩니다.
이 형식은 국제 표준 ISO 8601에 따라 날짜와 시간을 함께 일관되게 표현합니다.
예제
- 2013년 05월 13일 09시 12분(
2013-05-13T09:12
) - 2025년 01월 01일 02시 22분(
2025-01-01T02:22
)
초 단위까지 입력된 형식
추가적으로 초(seconds) 단위까지 입력하고 싶다면 step
속성을 사용하여 YYYY-MM-DDThh:mm:ss
형식으로 확장할 수 있습니다.
- 2013년 05월 13일 09시 12분 15초(
2013-05-13T09:12:15
) - 2025년 01월 01일 02시 22분 08초(
2025-01-01T02:22:08
)
자세한 설명은 입력 필드에 초(seconds)까지 입력하고 싶다면을 참고하세요.
관련 속성 사용하기
속성 | 설명 |
---|---|
step |
사용자가 입력 가능한 시간(초 단위) 간격을 지정합니다. |
value |
사용자가 아무런 입력을 하지 않을 때 처음 표시되는 날짜와 시간을 지정합니다. |
min |
사용자가 선택할 수 있는 가장 첫 번째 날짜와 시간을 지정합니다. |
max |
사용자가 선택할 수 있는 가장 마지막 날짜와 시간을 지정합니다. |
step
속성
사용자가 입력 가능한 시간(초 단위) 간격을 지정합니다.
사용자가 정해진 초 단위 간격에 따라 시간을 선택하도록 제한할 수 있습니다.
기본값 및 옵션
- 숫자(1 초 간격은
1
, 2 초 간격은2
, 3 초 간격은3
...) 또는any
를 지정할 수 있습니다. - 기본값:
60
(60 초 간격으로 선택 가능) any
: 날짜를 선택할 때 간격에 대한 제한이 없어집니다. 단순히step
속성을 생략하는 것과 동일한 결과를 가져옵니다.any
값을 사용하는 것보다는 코드의 간결성을 위해step
속성을 생략하는 편이 좋습니다.
입력 필드에 초(seconds)까지 입력하고 싶다면
초(seconds) 단위까지 입력하고 싶다면 step
값을 60으로 나누었을 때 나머지가 발생하도록 하세요. step
값이 60이면 1 분에 해당합니다. step
값이 60의 배수이면 분 단위까지만 입력 받는 형식(YYYY-MM-DDThh:mm
)이 되며, step
값을 60으로 나누었을 때 나머지가 발생하면 초 단위까지 입력할 수 있는 형식(YYYY-MM-DDThh:mm:ss
)이 됩니다. 예를 들어, 2024-05-13T09:30:45
, 2024-05-13T15:45:00
과 같이 입력할 수 있습니다.
예제를 통해 살펴보겠습니다.
사용 Tip
- 초 단위 입력이 필요하지 않으면
step
값을 60의 배수로 설정하세요. - 초 단위 입력이 필요하면
step
값을 60으로 나누었을 때 나머지가 발생하도록 설정하세요.
value
속성
기본값을 설정합니다.
사용자가 아무런 입력을 하지 않을 때 처음 표시되는 날짜와 시간을 지정합니다.
날짜와 시간은 YYYY-MM-DDThh:mm
형식으로 입력해야 합니다. 초 단위까지 설정하려면 YYYY-MM-DDThh:mm:ss
형식으로 입력합니다.
min
속성
선택할 수 있는 허용 가능한 최소 시간을 설정합니다.
이 값은 사용자가 선택할 수 있는 가장 첫 번째 날짜와 시간을 지정합니다.
날짜와 시간은 YYYY-MM-DDThh:mm
형식으로 입력해야 합니다. 초 단위까지 설정하려면 YYYY-MM-DDThh:mm:ss
형식으로 입력합니다.
주의할 점
기본적으로, 브라우저에서 <input type="datetime-local">
은 min
속성에 대한 날짜 유효성 검사 기능은 제공하지만, 시간 유효성 검사 기능은 제공하지 않습니다.
즉, 사용자는 min
속성으로 지정한 최소 시간보다 이전의 시간을 입력할 수 있습니다.
다음의 예제로 확인해 보세요.
이 속성대로라면 사용자는 08:00 이전의 시간을 선택하거나 입력할 수 없습니다. 그러나, 기본적으로 브라우저에서 시간 유효성 검사는 자동으로 적용되지 않기 때문에 07:15
와 같은 값도 입력할 수 있는 경우가 있을 수 있습니다.
만약 min
속성에 설정된 값을 실제로 검증하고 싶다면, 자바스크립트를 사용하여 입력 값의 유효성 검사를 처리해야 합니다. 중요한 입력이라면 반드시 서버측 언어에서 입력값에 대한 유효성 검사를 추가로 진행해야 합니다.
max
속성
선택할 수 있는 허용 가능한 최대 날짜와 시간을 설정합니다.
이 값은 사용자가 선택할 수 있는 가장 마지막 날짜와 시간을 지정합니다.
날짜와 시간은 YYYY-MM-DDThh:mm
형식으로 입력해야 합니다. 초 단위까지 설정하려면 YYYY-MM-DDThh:mm:ss
형식으로 입력합니다.
주의할 점
기본적으로, 브라우저에서 <input type="datetime-local">
은 max
속성에 대한 날짜 유효성 검사 기능은 제공하지만, 시간 유효성 검사 기능은 제공하지 않습니다.
즉, 사용자는 max
속성으로 지정한 최대 시간보다 이후의 시간을 입력할 수 있습니다.
다음의 예제로 확인해 보세요.
이 속성대로라면 사용자는 10:00시 이후의 시간을 선택하거나 입력할 수 없습니다. 그러나, 기본적으로 브라우저에서 유효성 검사는 자동으로 적용되지 않기 때문에 11:15
와 같은 값도 입력할 수 있는 경우가 있을 수 있습니다.
만약 max
속성에 설정된 값을 실제로 검증하고 싶다면, 자바스크립트를 사용하여 입력 값의 유효성 검사를 처리해야 합니다. 중요한 입력이라면 반드시 서버측 언어에서 입력값에 대한 유효성 검사를 추가로 진행해야 합니다.
이 밖에도 사용할 수 있는 관련 속성들이 다양하게 있습니다.
HTML <input> 태그의 여러 가지 속성들을 참조하세요!
접근성 고려사항
<input type="datetime-local">
을 사용할 때에는 <label>
을 함께 사용해야 합니다.
자세한 사항은 <input> 태그의 접근성 고려사항을 참조하세요.
브라우저 호환성
마지막 업데이트 정보: 2024-12-10
속성 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
<input type="datetime-local">
|
20 | 12 | 93 | 14.1 |
Firefox에서는 날짜 선택기만 표시하고 시간 선택기는 표시하지 않습니다. 버그 1726108을 참조하세요.
명세서
명세서 사양 | |
---|---|
<input type="datetime-local">
|
HTML Standard #local-date-and-time-state-(type=datetime-local) |