30(月)日后更新数据库记录

Update database record after 30 (month) day

我有一个提交列表,每个都有它的 date_added,我也在 运行 每天 cron 并检查 date_added 是否 >= 30 天。

我每天都在寻找正确的日期检查 (cron),所以如果 date_added >= 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