2013-10-30 125 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