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
我有一个提交列表,每个都有它的 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