PHP 날짜 비교하기 strtotime 사용 예제 및 문제점

입력한 날짜가 오늘인지 과거인지 또는 미래인지 확인하는 방법을 보겠습니다.

두개의 날짜를 비교하는 방법으로 strtotime 함수를 사용하겠습니다.

 

strtotime 날짜 비교

strtotime 함수는 문자열을 Unix 형태의 시간으로 변환해주는 함수입니다.

strtotime 날짜 비교 예제

<?php
$today = strtotime(date('Y-m-d'));
$target = strtotime('2018-09-23');

if ($today == $target){
	echo "target 날짜는 오늘입니다.";
} else if ($today > $target){
	echo "target 날짜는 과거입니다.";
} else {
	echo "target 날짜는 미래입니다.";
}
?>

 

결과

target 날짜는 과거입니다.

 

샘플에서는 현재 날짜를 취득하도록 strtotime 함수에 date(‘Y-m-d’)를 지정했습니다.

비교하고 싶은 날짜에는 strtotime 함수에 지정해 target이라는 변수에 저장했습니다.

strtotime 함수에는 문제점이 있습니다.

2038년이 되면 에러가 발생한다고 합니다.

정확하게는 2038년 1월 19일 3시 14분 7초에 컴퓨터가 오작동을 일으키게 된다고 합니다.

2000년도에도 비슷한 이야기가 있었습니다.

2038년도에도 비슷한 문제가 발생한다는 이야기가 있습니다.

오래 사용해야 할 프로그램이라면 strtotime 함수보다는 DateTime 클래스를 사용하는 것이 좋을거 같습니다.

DateTime 클래스를 사용하여 날짜를 비교하는 방법은 아래를 참조해주세요

PHP DateTime 클래스로 날짜 비교하기 예제 링크링크링크

 

댓글