我有一段代码可以查询MySql数据库并根据日期返回结果。应该发生的是,如果destroy_date字段中有一个包含今天日期的日期 - 1个月,则还有另一段代码应该向显示的结果添加1个月,以警告用户必须销毁此文件那个日期。出于某种原因,这种情况并没有发生,并且显示的是较旧的日期而没有显示预期的结果。
举个例子,假设一个文件的销毁日期为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'));
答案 0 :(得分: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;