我有一个提交列表,每个列表都有其date_add,我每天也运行cron,并检查date_added是否> = 30天。
我每天都在寻找正确的日期检查(cron),因此,如果date_add为> = 30天,则必须发生某些事情。
日期格式:2019-12-14 08:38:09
我的代码:
$afterMonth = date("Y-m-d H:i:s", strtotime("+1 months"));
查询比较:
$query->where($db->quoteName('last_updated') . ' >= ' . $db->quote($afterMonth));
我只是在测试<=,并且运行良好,但是不知道如何测试> =或它是否正常。
建议我提供更好的代码,因为我不擅长php。
在SQL中放入日期逻辑,您将不需要此行:
$afterMonth = date("Y-m-d H:i:s", strtotime("+1 months"));
更改您的where
子句:
$query->where($db->quoteName('last_updated') . ' >= DATE_SUB(CURDATE(), INTERVAL 30 DAY');
我们正在使用DATE_SUB()
SQL函数从给定日期中减去时间跨度。我们使用CURDATE()
获取当前日期,然后使用INTERVAL 30 DAY
设置要减去的时间跨度。
您也可以使用:
$query->where($db->quoteName('last_updated') . ' >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)');
此功能的更多信息here