JavaScript에서 두 날짜 사이의 일 수를 구하려면 getTime() 메서드를 활용하면 됩니다. getTime()은 날짜를 밀리초 단위의 타임스탬프 값으로 반환하기 때문에, 두 날짜의 타임스탬프 차이를 계산한 뒤 하루에 해당하는 밀리초 값으로 나누면 일 수 차이를 손쉽게 얻을 수 있습니다.
계산 원리
1초는 1000밀리초이고, 1시간은 3600초, 하루는 24시간이므로 하루 = 1000 × 3600 × 24 밀리초입니다. 따라서 두 날짜의 시간 차이를 이 값으로 나누면 일 단위의 차이가 계산됩니다.
예제 코드
아래 예제 코드를 실행하면 두 날짜 사이의 일 수 차이를 확인할 수 있습니다.
<!DOCTYPE html>
<html>
<body>
<script>
var dateFirst = new Date("10/29/2017");
var dateSecond = new Date("10/18/2017");
// 시간 차이 계산 (밀리초 단위)
var timeDiff = Math.abs(dateSecond.getTime() - dateFirst.getTime());
// 일 수 차이 계산
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
// 결과 출력
alert(diffDays);
</script>
</body>
</html>코드 설명
- Date 객체 생성:
new Date()를 사용해 비교할 두 날짜 객체를 만듭니다. - getTime()으로 변환: 각 날짜를 밀리초 단위 숫자 값으로 변환합니다.
- Math.abs() 사용: 날짜 순서와 관계없이 항상 양수인 차이 값을 얻기 위해 절댓값을 적용합니다.
- Math.ceil() 사용: 나눗셈 결과에서 소수점이 발생할 경우 올림 처리하여 정확한 일 수를 보장합니다.
위 예제에서 2017년 10월 29일과 2017년 10월 18일의 차이를 계산하면 결과값으로 11이 표시됩니다.