PHP에서 두 날짜를 비교하는 작업은 의외로 간단합니다. 특히 "YYYY-MM-DD"처럼 표준화된 형식의 날짜 문자열은 사전순(lexicographic) 비교 결과가 실제 시간 순서와 일치하기 때문에, 별도의 변환 과정 없이 기본 비교 연산자만으로도 정확하게 비교할 수 있습니다.
아래 예제들을 통해 동등 연산자(==)와 부등호 연산자를 활용한 날짜 비교 방법을 살펴보겠습니다.
예제 1: 동등 연산자로 두 날짜가 같은지 확인하기
다음 코드는 동등 연산자를 사용하여 두 날짜가 서로 같은지 판단합니다.
<?php
$dateOne = "2019-10-30";
$dateTwo = "2019-10-30";
echo "날짜1 = $dateOne";
echo "\n날짜2 = $dateTwo";
if ($dateOne == $dateTwo)
echo "\n두 날짜는 같습니다!";
else
echo "두 날짜는 다릅니다!";
?>
출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
날짜1 = 2019-10-30
날짜2 = 2019-10-30
두 날짜는 같습니다!
예제 2: 부등호 연산자로 어느 날짜가 더 최신인지 확인하기
두 날짜가 서로 다른 경우에는 비교 연산자를 사용해 어느 쪽이 더 나중 날짜인지 확인할 수 있습니다.
<?php
$dateOne = "2019-11-08";
$dateTwo = "2018-08-10";
echo "날짜1 = $dateOne";
echo "\n날짜2 = $dateTwo";
if ($dateOne < $dateTwo)
echo "\n두 번째 날짜가 더 최신입니다!";
else
echo "\n첫 번째 날짜가 더 최신입니다!";
?>
출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
날짜1 = 2019-11-08
날짜2 = 2018-08-10
첫 번째 날짜가 더 최신입니다!
참고: 더 견고한 날짜 비교 방법
날짜 형식이 "YYYY-MM-DD"가 아니거나 시간 정보가 함께 포함된 경우에는 문자열 직접 비교 대신 strtotime() 함수나 DateTime 클래스를 사용하는 것이 안전합니다.
strtotime() 활용 예시
<?php
$tsOne = strtotime("2019-11-08");
$tsTwo = strtotime("2018-08-10");
if ($tsOne > $tsTwo)
echo "첫 번째 날짜가 더 최신입니다!";
?>
DateTime 클래스 활용 예시
<?php
$dateOne = new DateTime("2019-11-08");
$dateTwo = new DateTime("2018-08-10");
var_dump($dateOne > $dateTwo); // bool(true) : 첫 번째 날짜가 더 최신
?>
DateTime 객체 역시 비교 연산자를 직접 지원하므로, 시간대(timezone) 처리나 복잡한 날짜 계산이 필요한 프로젝트에서는 이 방식이 가장 권장됩니다.