2014-09-17 2 views
2

데이터베이스 (로그, 메시지, 로그인 등)의 다양한 항목의 타임 스탬프를 가져와 X 양보다 오래된 경우 제거하는 PHP 스크립트를 만들어야합니다 일의. 나는 시간을 가지고 일하는 데 가난하며이 일을 수행하는 가장 좋은 방법에 대해 다소 혼란 스럽다.날짜가 X 일 이상 경과했는지 확인하십시오.

explode()를 사용하여 문자열에서 일/월/년을 분리하고 If 문을 여러 개 비교할 수 있지만 더 효율적인 방법을 사용하고 싶습니다. 다음과 같은 것이 올바른 방법입니다.

$dt = "2011-03-19 10:05:44"; 

//if $dt is older than 90 days 
if((time()-(60*24*90)) > strtotime($dt)) 
{ 

} 

시간에서 뺄셈 (분 * 시간 * 일) 또는 숫자가 잘못 되었습니까?

+1

'foo는 어디에서 삭제 (NOW() - 간격 X 일) your_time <'이다 –

+0

을 너무에서 DT를 사용하여 내 예를보다 깊이는 좀 더 비록 좋은 옵션 이 경우 PHP가 더 적합 할 것입니다. –

+0

글쎄, 나는 당신이 남긴 것을 추측하지 않고, 글에 답할 수 있습니다. –

답변

5

DateTime 클래스를 사용할 수 있습니다. 예 :

$dt = "2011-03-19 10:05:44"; 
$date = new DateTime($dt); 
$now = new DateTime(); 
$diff = $now->diff($date); 
if($diff->days > 90) { 
    echo 'its greater than 90 days'; 
} 
당신은 실행할 수
+0

그게 내가 찾고 있던 바로 그거야, 고마워. 나는 DateTime 클래스에 대해 몰랐다. –

+0

그는 데이터베이스에서 제거하고 있기 때문에 날짜 기능을 수행하기 위해 이들을 추출 할 필요가 없습니다 –

+0

@BrettPowell 도움이 되었으면 기꺼이 도와 드리겠습니다 – Ghost

관련 문제