2012-11-14 112 views
1

因此,在我的php腳本中,我將當前時間(date())與mysql數據庫中的時間進行比較,但它不起作用。我該怎麼做呢? PHP有沒有辦法將當前時間與mysql保存時間進行比較

if($row['Datum'] < date(Y-m-d-H-i-s)) { Code to execute} 

Mysql的DATETIME

2012-11-13 17:00:00 
+0

請提供圖片請確認您正在使用的實際代碼。 –

+1

您可以在您的SQL查詢中進行比較嗎?那會更快。 –

回答

1

您當前的代碼有語法錯誤,但它是非常接近的東西,將工作:

if ($row['Datum'] < date('Y-m-d H:i:s')) { 
    // Code to execute 
} 

這很可能是一個循環裏面,所以你應該緩存的date()輸出:

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

// loop here 
foreach ($rows as $row) { 
    if ($row['Datum'] < $now) { 
     // code to execute 
    } 
} 

你也可以直接做比較,在查詢:

$now = date('Y-m-d H:i:s'); 
$db->query("SELECT * FROM whatever WHERE Datum < '$now'"); 
0

MySQL的日期格式爲

$date = new DateTime(); 
$date = $date->format('Y-m-d H:i:s'); 

if ($row['Datum'] < $date) { Code to execute } 
0

首先您將日期錯在你的PHP呼叫格式,MySQL的日期是在格式"Y-m-d H:i:s"。其次,你不需要這樣做。您可以改爲使用以下內容:

if(strtotime($row['Datum']) < time()) { // Code to execute } 

這會將mysql日期轉換爲時間戳,並將其與當前時間戳進行比較。

0

你可以將它添加到SQL查詢嗎?

SELECT * FROM tablename WHERE Datum < now(); 
+0

如果您的服務器位於另一個時區,這會導致問題 – Chris

0

如果您的日期符合ISO 8601格式: 「YYYY-MM-DD HH:II:SS」,你可以使用的strtotime函數將字符串轉換爲Unix時間戳。

相關問題