2013-10-09 55 views
0

我非常感謝您的幫助。從PHP的MySQL日期比較

我有一個包含日期時間字段的MySQL數據庫。在那場我有一個特定的日期和時間, 例如:

2013-10-03 22:28 

然後我有一個PHP腳本,獲取從$_GET命令特定的日期和時間,值分別:年,月,日,小時,分鐘。

從這個GET我創建了一個日期如下:

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

我現在需要做的是某種程度上比較我與數據庫(最近)的最後日期值創造了這個新的日期是什麼。重點是,我比較後,我想檢查數據庫中的最後一個值是否早於5分鐘,然後只做一個特定的操作(插入新的一行),如果數據庫中的最後一個日期比5分鐘更新, 沒做什麼。

+0

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

+0

比較正在數據庫端或PHP上完成?您使用的是哪個版本的PHP? – nilobarp

回答

0

使用「從tblname中選擇max(datetime_field)」獲取Datetime字段的最新值。

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分鐘

性能的原因,我建議您將索引添加到datefield並更改選擇喜歡:

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