Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 두 Date 객체를 비교하는 방법 완벽 가이드

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 객체는 비교 시 자동으로 숫자(타임스탬프)로 변환된다는 점을 기억하세요.