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

问题描述 投票:1回答:1

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

php mysql joomla cron
1个回答
1
投票

在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

© www.soinside.com 2019 - 2024. All rights reserved.