2012-07-31 4 views
0

PHP에서 두 날짜를 비교하는 방법에 대한 스택 오버플로에 대한 예제가 많이 있지만 코드가 제대로 작동하지 않습니다.PHP에서 SQL 데이터베이스에서 가져온 두 날짜 비교

현재 캐시 날짜와 적중 날짜의 두 날짜가 있습니다. 캐쉬 데이트가 2 시간이 넘었을 때 캐쉬 데이트가 새로운 정보를 다시 캐쉬하는 경우이를 설정하려고합니다. 나는 현재 날짜 형식으로 MySQL의에 저장된 : $lastcache = date("m.d.y G:i");

(대부분은 어떤 이유로 나중에 하루에) 약 절반의 시간을 작동 나의 현재 코드는 이것이다 :

$lastcache = $row['lastcache']; 
$expiredate = date("m.d.y G:i", strtotime("-120 minutes")); 

if($expiredate > $lastcache){ 
    cache($input);  
}else{ 
    //do cool stuff 
} 

어떻게 더 나은 I을 수 이 두 날짜를 비교하여 2 시간 이상 경과했는지 확인하십시오.

답변

4

이 코드는 변수 업데이트, 나를 위해 완벽하게 작동합니다 :

$interval = (strtotime(date("Y-m-d H:i:s")) - strtotime($lastcache))/60; 

이는 분, 시간 간격을 반환합니다. 원하는 형식으로 서식을 지정하는 수학을 추가하십시오. 당신을 가정

분의 간격으로 결과를 유지, 당신은 다만 것 :

if($interval >= 120) {...} 
+0

왜'time()'대신'strtotime (date ("Y-m-d H : i : s"))'를 사용 했습니까? 형식화 된 날짜를 출력하고 구문 분석 할 필요가 없습니다 ... MySQL 형식으로 저장됩니다. –

+0

나는 시간이 지남에 그것을 밖으로 시도하지 않았다 - 나는이 작은 조각을 어제 필요로했고, 내가 단지 게시 할 것이라고 생각했다. 시간이 지날수록 잘 작동한다고 가정합니다. OP, 알려주세요! –

-1

는 PHP의 날짜/시간 객체를 사용하는 것을 고려하십시오. 문서를 찾을 수 있습니다 here