两个日期之间的PHP差异最多只能工作4天

时间:2012-02-17 15:51:21

标签: php datetime strtotime

我一直在使用脚本根据两个日期之间的差异更新数据库,直到2月11日。然后突然发生了奇怪的事情,没有对剧本进行任何改动。

这个想法是更新一天前最后更新的数据库中的一些记录,并更新7天前最后更新的其他记录。这就是我正在使用的:

$datenew7 = new DateTime("now");
$datenew7->modify("-7 day");
$expirydate7 = $datenew7->format("d/m/Y H:i:s");

$datenew1 = new DateTime("now");
$datenew1->modify("-1 day");
$expirydate1 = $datenew1->format("d/m/Y H:i:s");

$strSQL1="UPDATE vacancies SET dateupdated= #" . date("F j Y g:i a") . "# WHERE jobtype='p' AND dateupdated < #" . $expirydate1 . "#";

$strSQL7="UPDATE vacancies SET dateupdated= #" . date("F j Y g:i a") . "# WHERE jobtype='s' AND active='a' AND dateupdated < #" . $expirydate7 . "#";

第一个查询仍然可以正常工作,但是第二个查询每次运行脚本时都会更新这些记录,而不管已经过的天数。

有趣的是,如果我将“-7天”更改为“-4天”或更少,则可以正常工作。任何超过“-5天”的东西都不起作用。

我在这里搜索过并找到了一种更简单的方法来获取变量,因此将它们更改为:

$expirydate7 = date('d-m-Y H:i:s', strtotime("-3 day"));
$expirydate1 = date('d-m-Y H:i:s', strtotime("-1 day"));

......但结果仍然相同。我到处搜索但没有快乐。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

正确的日期格式为Y-m-d H:i:s。尝试使用该格式,看看它是否有效。