2013-10-09 4 views
0

여러분의 도움에 감사드립니다.PHP와 MySQL 날짜 비교

Datetime 필드가 포함 된 mysql db가 있습니다. 해당 필드에서 나는 예를 들어 특정 날짜와 시간, 있습니다

2013-10-03 22:28 

내가 다음 $_GET 명령에서 특정 날짜와 시간을 가져옵니다 PHP 스크립트를 가지고, 값은 별도로 : 년, 월, 일,시 , 분.

$datum = $year."-".$month."-".$day." ".$hour.":".$minute.":".$seconds; 
$date = date('Y-m-d H:i',strtotime($datum)); 

을 어떻게 든 내가 데이터베이스 (가장 최근)의 마지막 날짜 값으로 생성이 새로운 날짜를 비교 지금해야 할 일은 다음과 같이이 GET에서

나는 날짜를 만들었습니다. 요점은 내가 이것을 비교 한 후 db의 마지막 값이 5 분보다 오래되었는지 확인한 다음 특정 작업 (새 행 삽입)을 수행하고 db의 마지막 날짜가 5 분보다 작은 경우 , 아무것도하지 마세요.

+0

'WHERE' +'DATE_SUB' +'>' – zerkms

+0

비교는 DB 측 또는 PHP에서 수행되고 있습니까? 어떤 PHP 버전을 사용하고 있습니까? – nilobarp

답변

0

날짜/시간 필드에 가장 최근 값을 가져 오려면 "select max (datetime_field) from tblname"을 사용하십시오.

0
$now = new DateTime(); 
$dateFromDB = new DateTime($someValueFromYourDataBase); 

// subtract 5 minutes from now and compare with the stored timestamp 
if ($now->sub(new DateInterval('PT5i') > $dateFromDB) { 
    // database timestamp is older - do something 
} 
0

이 같은 SQL을 사용할 수 있습니다

select count(*) from `table` where `datefield` >= '$date' 

$ 날짜는

$date = date('Y-m-d H:i', strtotime($datum) - 5*60); 

5 * 60와 같이 계산 될 수있다 - 그것은 5 분 성능 이유 I에 대한

입니다 datefield에 색인을 추가하고 다음과 같이 변경하십시오 :

select `datefield` from `table` where `datefield` >= '$date' limit 1