PHP 문자열 날짜 비교 안될때 확인해 볼 사항

입력한 날짜나 취득해온 날짜를 비교하는 경우 문자열 그대로 비교를 하는 경우가 있습니다.

 

날짜 문자열 비교1

<?php
$date_time1 = '2019-05-23';
$date_time2 = '2019-05-23';

if($date_time1 == $date_time2)
{
	echo '날짜가 같습니다.';
}
else
{
	echo '날짜가 다릅니다. 다시 확인해주세요.';
}
?>

 

결과

날짜가 같습니다.

 

두 개의 날짜를 비교하는 예제입니다.

첫 번째 변수와 두 번째 변수에는 같은 날짜를 입력했습니다.

결과는 같다고 표시되었습니다.

다음 예제를 보겠습니다.

 

날짜 문자열 비교2

<?php
$date_time1 = '2019-05-23';
$date_time2 = '2019/05/23';

if($date_time1 == $date_time2)
{
	echo '날짜가 같습니다.';
}
else
{
	echo '날짜가 다릅니다. 다시 확인해주세요.';
}
?>

 

결과

날짜가 다릅니다. 다시 확인해주세요.

 

이번 결과는 날짜가 다르다고 표시되었습니다.

두 변수에 입력한 값은 같은 날짜이지만 날짜 형식이 다릅니다.

예제는 같은 날짜 인지 판단하기보다는 같은 문자열인지 판단하고 있는 것에 가깝습니다.

날짜 형식에 사용된 -와 /는 문자로 인식되기 때문에 날짜 형식이 다르면 비교를 할 수 없습니다.

날짜를 비교해야 하는 경우에는 DateTime 클래스 등을 이용하여 형식을 동일하게 한 다음 처리하도록 해야 합니다.

 

정리

날짜를 비교하기 위해서는 먼저 날짜 형식을 맞추거나, 날짜 타입으로 변환 후에 해야 합니다.

단순히 문자열 형태로 비교를 하게 되면 원하는 결과를 얻을 수 없습니다.

댓글