0
我需要在一個或多個工作日內安排一項週期性任務,每隔X周發生一次。 例如每三週,星期四和星期六。如何計算(日曆)星期之間的PHP差異?
通常情況下,如果任務每週只發生一次,那麼我可以計算出今日與事件觸發的最後一天之間的天數差,再除以7得到周差。由於該任務可能每週運行數次,因此我無法使用此方法。
我的想法是計算的差異日曆周之間並使用該值來確定是否計劃任務應在本週執行:
$lastCW = date('W', strtotime($last_trigger_date));
$currentCW = date('W');
$cwDifference = $currentCW - $lastCW;
if (($cwDifference == $repeat_interval) || ($cwDifference == 0)) {
// run some code
}
此代碼工作正常時,這兩個日期在同一年,但是當間隔跨越兩年並且日曆周差變爲負時存在問題。
處理這個問題的最佳方法是什麼?
使用http://php.net/manual/en/datetime.modify.php'$日期 - >修改('+ 1周')' –
你不應該將它們轉換爲日期直到結束。您應該在最後幾周的unix時間戳之前減去當前周的unix時間戳。 – Derek