我想每X天的時間從日曆中給定的日期。我認爲我的邏輯在一定程度上有所下降,但是對於一小段日期我收到了意想不到的結果。PHP:每X週日歷,重複活動
我的代碼從我的項目採取如下:
$start_time = 1345935600; //Sept 25th 2011;
$end_time = 1355011200; //Dec 9th 2011;
$sStartDate = date("Y-m-d", $start_time) . " " . date("H:i:s", strtotime("00:00:00"));
$sEndDate = date("Y-m-d", $end_time) . " " . date("H:i:s", strtotime("00:00:00"));
$sCurrentDate = $sStartDate;
while($sCurrentDate < $sEndDate)
{
$t_date = strtotime($sCurrentDate);
$s_date = strtotime(date("Y-m-d", strtotime("08/30/2011")));
$recurs_every = 60 * 60 * 24 * 2; //occurs every 2 days
echo date("Y-m-d H:i:s", $t_date) . " " . date("Y-m-d H:i:s", $s_date) . " " . (($t_date - $s_date) % $recurs_every) . " " . $recurs_every . "<BR>" ;
$sCurrentDate = date("Y-m-d", strtotime("+1 day", strtotime($sCurrentDate)));
}
輸出(當前日期 - 開始日期 - 模塊化):
2011-09-25 00:00:00 2011-08-30 00:00:00 0
2011-09-26 00:00:00 2011-08-30 00:00:00 86400
....
2012-10-27 00:00:00 2011-08-30 00:00:00 0
2012-10-28 00:00:00 2011-08-30 00:00:00 86400
2012-10-29 00:00:00 2011-08-30 00:00:00 3600
2012-10-30 00:00:00 2011-08-30 00:00:00 90000
2012-10-31 00:00:00 2011-08-30 00:00:00 3600
2012-11-01 00:00:00 2011-08-30 00:00:00 90000
2012-11-02 00:00:00 2011-08-30 00:00:00 3600
2012-11-03 00:00:00 2011-08-30 00:00:00 90000
2012-11-04 00:00:00 2011-08-30 00:00:00 3600
2012-11-05 00:00:00 2011-08-30 00:00:00 90000
的最後幾行是我的問題。
3600是一個小時,我不知道這是哪裏來的。奇怪的是,快進至3月26日2012年它再次開始工作,但在2012年10月29日...
我已經在這幾個小時,不能算出這個發生同樣的錯誤。任何幫助真的很感激!
由於
我認爲這可能與此有關。我的大腦目前正在發展。你能否更新我的代碼來解決它? – PaulM
我編輯了我的帖子。應該是這樣的。可能不是最好的解決方案,但應該工作(在我的測試中)。 – MasterCassim