JavaScript에서 Date 객체를 자정(00:00:00)으로 초기화하는 가장 간단하고 확실한 방법은 setHours() 메서드를 사용하는 것입니다.
setHours() 메서드로 자정 설정하기
setHours() 메서드는 시, 분, 초, 밀리초를 한 번에 설정할 수 있습니다. 네 개의 인자를 모두 0으로 전달하면 해당 날짜의 자정으로 정확하게 초기화할 수 있습니다.
setHours(0,0,0,0);
예제
다음 코드를 실행하면 현재 날짜의 시간이 자정으로 설정되는 것을 확인할 수 있습니다.
<!DOCTYPE html>
<html>
<body>
<script>
var dt;
dt = new Date();
dt.setHours(0,0,0,0);
document.write(dt);
</script>
</body>
</html>출력 결과
Mon May 28 2018 00:00:00 GMT+0530 (India Standard Time)
핵심 포인트
setHours(0,0,0,0)의 인자는 순서대로 시(hour), 분(minute), 초(second), 밀리초(millisecond)를 의미합니다. 이처럼 시간 정보를 모두 0으로 만들어 주기 때문에 특정 날짜 기준으로 데이터를 그룹화하거나 두 날짜를 비교할 때 매우 유용합니다. 또한 원본 Date 객체를 직접 수정하지 않고 새로운 자정 날짜 객체가 필요한 경우에는 new Date(dt.setHours(0,0,0,0))와 같이 활용할 수도 있습니다.