我應該對此有任何問題嗎?在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'或者如果有更好的方法 –