PHP에서는 DateTime 클래스를 사용하면 두 날짜를 아주 간단하게 비교할 수 있습니다. DateTime 객체끼리는 일반적인 비교 연산자(>, < 등)를 그대로 사용할 수 있기 때문에, 별도의 복잡한 변환 과정 없이 직관적으로 날짜의 선후 관계를 판별할 수 있습니다.
예제 코드
<?php
$date_1 = new DateTime("2020-11-22");
$date_2 = new DateTime("2011-11-22");
if ($date_1 > $date_2)
echo $date_1->format("Y-m-d") . " 는 " . $date_2->format("Y-m-d") . " 보다 이후의 날짜입니다.";
else
echo $date_1->format("Y-m-d") . " 는 " . $date_2->format("Y-m-d") . " 보다 이전의 날짜입니다.";
?>실행 결과
2020-11-22 는 2011-11-22 보다 이후의 날짜입니다.
코드 설명
위 코드의 동작 방식은 다음과 같습니다.
먼저 new DateTime()을 통해 두 개의 날짜 객체를 생성합니다. 이렇게 만들어진 DateTime 객체는 서로 직접 비교할 수 있으며, 조건문(if)을 사용해 첫 번째 날짜가 두 번째 날짜보다 나중인지 확인합니다.
첫 번째 날짜가 더 나중이라면 해당 사실을 알리는 메시지가 출력되고, 그렇지 않은 경우에는 첫 번째 날짜가 두 번째 날짜보다 이전이라는 메시지가 화면에 표시됩니다.
참고 사항
DateTime 객체 대신 문자열 형태의 날짜를 비교할 경우 strtotime() 함수나 DateTime::diff() 메서드를 활용할 수도 있습니다. 특히 두 날짜 사이의 차이(일수, 시간 등)까지 계산해야 한다면 diff() 메서드가 유용합니다.