JavaScript에서 두 날짜를 비교하려면 Date 객체를 두 개 생성한 뒤, 비교 연산자(>, <)를 사용하여 어느 쪽이 더 최근 날짜인지 확인하면 됩니다. JavaScript의 Date 객체는 내부적으로 타임스탬프(밀리초 단위 숫자) 값으로 변환되어 비교되기 때문에, 별도의 복잡한 처리 없이 직접 비교할 수 있습니다.
아래 예제 코드를 직접 실행해 결과를 확인해 보세요.
예제 코드
<!DOCTYPE html>
<html>
<body>
<script>
var date1, date2;
date1 = new Date();
document.write(date1);
date2 = new Date( "Dec 15, 2014 21:20:15" );
document.write("<br>"+date2);
if (date1 > date2) {
document.write("<br>Date1이 더 최근 날짜입니다.");
} else {
document.write("<br>Date2가 더 최근 날짜입니다.");
}
</script>
</body>
</html>실행 결과
Sat Dec 15 2018 11:08:06 GMT+0530 (India Standard Time) Mon Dec 15 2014 21:20:15 GMT+0530 (India Standard Time) Date1이 더 최근 날짜입니다.
코드 설명
new Date()는 인자 없이 호출하면 현재 시각 기준의 날짜 객체를 생성합니다. 반면 new Date("Dec 15, 2014 21:20:15")처럼 문자열을 전달하면 해당 특정 시점의 날짜 객체가 만들어집니다.
이후 if (date1 > date2) 조건문으로 두 객체를 비교하면, 각 날짜가 나타내는 시간값(타임스탬프)을 기준으로 크고 작음이 판단됩니다. 이 예제에서는 date1이 현재 시각이므로 과거 날짜인 date2보다 큰 값이 되어 "Date1이 더 최근 날짜입니다."라는 메시지가 출력됩니다.
같은 원리로 <, >=, <= 연산자도 사용할 수 있으며, 두 날짜가 동일한지 확인하려면 date1.getTime() === date2.getTime()처럼 getTime() 메서드를 활용하는 것이 안전합니다.