2013-10-30 160 views
0

我有一段代碼查詢MySql數據庫並返回基於日期的結果。應該發生的情況是,如果在包含今天日期的destroy_date字段中有一個日期 - 1個月,那麼還有一段代碼應該在顯示的結果中增加1個月,以警告用戶該文件必須銷燬那個日期。出於某種原因,這不會發生,並顯示較舊的日期,而不是顯示預期的結果。MySql日期查詢不返回預期結果

舉一個例子,讓我們說一個文件的銷燬日期爲30/10/2013。我需要提前1個月通知該文件將在該日期銷燬。所以我需要在30/09/2013上顯示這個文件將在2013年10月30日銷燬。

如果有人能指出我的錯誤或需要更多信息,我將不勝感激,那麼我將很樂意包括這樣的信息。非常感謝

MySQL查詢

$query = "SELECT * FROM boxes WHERE customer = '$_SESSION[kt_idcode_usr]' AND destroy_date <= DATE(NOW() - INTERVAL 1 MONTH) AND destroy_date != '0000-00-00' AND status = 1 order by destroy_date desc"; 

PHP代碼添加1個月

$rowdate = date("d/m/Y", strtotime($row['destroy_date'] . ' + 1 MONTH')); 

回答

1

如果您在記錄的獲取比你的sql添加下面的條件有問題。

date(expiry_date) BETWEEN date(NOW()) AND date(NOW()) + INTERVAL 1 MONTH 

如果您在顯示日期時遇到問題,請嘗試下面的代碼。

$newdate = strtotime ('+ 1 MONTH' , strtotime ($row['destroy_date'])) ; 
//assuming your date is in yyyy/mm/dd format 
$newdate = date ('d/m/Y' , $newdate); 
echo $newdate; 
+0

這是豬頭混亂:-)我不確定這是否是在數據庫或PHP的問題。我會嘗試。謝謝 – user1532468

+0

描述它的最好方法。想象一下,你有一個帳戶在2013年10月30日到期,一個公司會在1個月前告訴你,你的帳戶在該日期到期。謝謝 – user1532468

+0

已解決。我在查詢中將間隔從 - 更改爲+。 – user1532468