2014-01-30 68 views
-1

如果時間超過15分鐘,我的數據庫中的某個日期和時間就會計算出一些麻煩。我怎樣才能檢查這個?PHP檢查日期和時間是否已經過去15分鐘

我有這個在我的數據庫(例如):

2014年1月30日15時29分31秒

然後我從PHP日期:

$date = date("Y-m-d H:i:s"); 

但如何我可以檢查時間是否過了15分鐘,或者如果這是不同的一天?

我到目前爲止這樣的代碼:

$date = date("Y-m-d H:i:s"); 
$sql = "SELECT date FROM reset WHERE session_id = '".$sessid."' limit 1"; 
$result = mysql_query($sql); 
$value = mysql_fetch_object($result); 
$dbdate = $value->date; 

$checkdate = strtotime($dbdate); 
if ($checkdate - time() > 15 * 60) { 
error_log("15 mins passed"); 
} 
+0

你爲什麼要使用一個數據庫......你應該只是其存儲在用戶會話變量 – cmorrissey

+0

因爲它是一個密碼重置鏈接15分鐘爲已過期的行會被設置後。這就是我使用數據庫的原因。 – Anders

回答

9

您可以分析從數據庫中的日期和進行比較。

$dbdate = strtotime($datefromdb); 
if (time() - $dbdate > 15 * 60) { 
    // 15 mins has passed 
} 

並比較日期:

if (date("Y-m-d", $dbdate) != date("Y-m-d")) { 
    // different date 
} 

我包括在該年份和月份也注意到其中只有(例如2014-01-012014-02-01)的變化。使用"d"而不是"Y-m-d"來檢查日期。

+0

我不認爲時間有效。看看線程,我已經更新了它。 – Anders

+0

也只是試過日期,由於某種原因,它給了我這個日期'1969-12-31'。 – Anders

+0

@Anders我只是在變量名中修復了一個錯字,以防複製粘貼我的代碼。 – Pietu1998

3

使用DateTime對象:

$dateTimeObject = new DateTime($dateString); 
//and subtract using an interval 
$dateTimeObject->sub(new DateInterval("PT15i"); 
$newDateString = $dateTimeObject->format("Y-m-d H:i:s"); 
1

你可以使用DATE_FORMAT功能。

$actual_minute = date("i"); 
$data = mysql_query("SELECT DATE_FORMAT(date,'%i') minutes FROM reset WHERE session_id = '".$sessid."'"); 
$database_minute = $data{'minutes'}; 
相關問題