我应该对此有任何问题吗?在PHP的午夜十二点获取Yesterdays日期
我的正是午夜
0 0 * * * /usr/bin/php myscript.php
脚本设置定义前一天在MySQL时间戳格式日期设置cron作业。
$midnightyesterday2 = (new DateTime())->setTime(0, 0);
$midnightyesterday2->modify('-1 day');
$midnightyesterday = $midnightyesterday2->format("Y-m-d H:i:s");
回波输出:
2017年4月8日00:00:00
$endofdayyesterday2 = (new DateTime())->setTime(23, 59, 59);
$endofdayyesterday2->modify('-1 day');
$endofdayyesterday = $endofdayyesterday2->format("Y-m-d H:i:s");
回波输出:
2017年4月8日23:59:59
显然,这样本输出是否正常工作,因为我这样做是在十五点22分00秒。
难道我只是想在午夜设置一个cron工作,如果剧本因为某种原因早点跑了一小部分,甚至可能会导致冲突,甚至半秒钟。
是否有更好的方法来确保昨天的日期与脚本设置为正好在午夜运行?
我需要它正好在午夜运行,因为脚本基于MySQL lastmodified
时间戳,因为我的回声表明,甚至在12:01运行它可能会留下一些额外的行后面添加在那一分钟。
你很好,你的cron工作只会运行一次和午夜,你根本不需要担心。不过,真的,如果是午夜或任何时候,它只会运行一次都没关系。 –
让系统依赖于正好在午夜运行的作业似乎非常危险。你应该想出另一种方法来实现你的目标。 –
@Evan Carslake:我知道它只会运行一次,但我担心的是,因为它在午夜运行,DateTime可能会搞砸,我可能会重复。 @Gordon Linoff:因此,这个问题:)我想知道如果我可以添加12小时的日期时间,然后设置时间为'00:00:00'或者如果有更好的方法 –