JavaScript에서 두 날짜(Date) 객체를 비교하는 것은 생각보다 간단합니다. >(크다), <(작다) 같은 비교 연산자를 사용하면 되는데, 이때 Date 객체는 내부적으로 타임스탬프(밀리초 단위 숫자)로 변환되어 비교됩니다.
날짜 비교의 기본 원리
두 개의 Date 객체를 생성한 뒤, 현재 날짜와 사용자가 지정한 특정 날짜를 비교 연산자로 비교하면 어느 쪽이 더 최근 날짜인지 쉽게 판별할 수 있습니다.
예제
다음 코드를 실행하여 두 날짜를 직접 비교해 보세요.
<!DOCTYPE html>
<html>
<body>
<script>
var date1, date2;
date1 = new Date();
document.write(date1);
date2 = new Date( "Dec 10, 2015 20:15:10" );
document.write("<br>"+date2);
if (date1 > date2) {
document.write("<br>Date1이 더 최근 날짜입니다.");
} else {
document.write("<br>Date2가 더 최근 날짜입니다.");
}
</script>
</body>
</html>출력 결과
Mon May 28 2018 09:48:49 GMT+0530 (India Standard Time) Thu Dec 10 2015 20:15:10 GMT+0530 (India Standard Time) Date1이 더 최근 날짜입니다.
주의할 점: 동등성(==) 비교
>, < 연산자는 정상적으로 작동하지만, ==나 === 연산자로 두 Date 객체가 같은 시점인지 확인하려면 주의가 필요합니다. ===는 객체의 참조(메모리 주소)를 비교하기 때문에 내용이 같아도 서로 다른 객체라면 false를 반환합니다.
두 날짜가 완전히 같은지 확인하려면 getTime() 메서드를 사용하는 것이 안전합니다.
if (date1.getTime() === date2.getTime()) {
console.log("두 날짜는 동일합니다.");
} else {
console.log("두 날짜는 다릅니다.");
}정리
- 날짜의 선후 관계 비교에는
>,<,>=,<=연산자를 그대로 사용할 수 있습니다. - 같은 날짜 여부를 확인할 때는 반드시
getTime()으로 변환 후 비교해야 합니다. - Date 객체는 비교 시 자동으로 숫자(타임스탬프)로 변환된다는 점을 기억하세요.