2012-10-12 38 views
3

我有一個奇怪的問題:
我從mysql數據庫中得到了一些數據,我使用strotime將其轉換爲時間戳。 然後我用一個比較這些時間戳循環:strtotime夏令

for ($i=$start;$i<=$end;$i=$i+86400){ 
$ptag=date("w",$i); 
if ($i<=$checkdateend){ 
    if ($wochendays[$ptag]==1){ 
    if (!in_array($i,$solvedays)){ 
     $solvedays[]=$i; 
    } 
    } 
} 
} 

與給定的一天(也時間戳)
其中$wochendays=(0,0,1,0,1,0,0)

這工作得很好,但是當我跨過夏天/冬天變化,我得到一個問題。
的solvedays陣列中應該有這些值:

27.10.2012 
28.10.2012 
29.10.2012 

,但我得到

27.10.2012 
28.10.2012 
28.10.2012 

代替。
我想原因是夏季改變冬季,但我沒有任何線索如何解決這個問題。任何提示?

+0

您可能希望將日期存儲在GMT。 – Kermit

+0

我不認爲這會影響任何事情,因爲我沒有在數據庫中存儲時間,但只有幾天。所以我認爲它沒有任何區別。 – citylayer

回答

2

嘗試DateTime

$date = new DateTime('2006-12-12'); 
$date->modify('+1 day'); 
echo $date->format('Y-m-d'); 
+0

我看到了,我會將我的代碼更改爲datetime。 – citylayer