2011-05-28 69 views
1

我有日期從冬季/夏季時間穿越的問題..請參見例如Zend的日期和夏季

 $pickUpDate = '2011-10-23'; 
     $dropOffDate = '2011-10-31'; 
     $pickUpTime = '09:00'; 
     $dropOffTime = '09:00'; 

     Zend_Date::setOptions(array('fix_dst' => false)); 
     Zend_Date::setOptions(array('fix_dst' => false)); 
     $pickUpDateTime = new Zend_Date ($pickUpDate); 
     $pickUpDateTime->setTime ($pickUpTime); 
     $dropOffDateTime = new Zend_Date ($dropOffDate); 
     $dropOffDateTime->setTime ($dropOffTime); 


     $dateDiff = ceil(($dropOffDateTime->getTimestamp () - $pickUpDateTime->getTimestamp ())/(3600 * 24)); 
     echo $dateDiff; 

回聲產生9 ...我的時區是倫敦,但我認爲fix_dst應該可以解決夏季問題?我也嘗試將時區設置爲GMT和UTC,但具有相同的效果?有任何想法嗎?

回答

0

時間戳沒有時區信息。你應該避免在這個用例中使用它們。

可能是你應該嘗試在你的兩個日期之間用Zend_Date::sub方法。這將照顧DST。

請還因爲從我從上面的鏈接閱讀評論你的時區:

如果在Zend_Date 實例中的當前時區設置爲UTC或 GMT選項「fix_dst」不會使用 ,因爲這兩個時區的確如此, 不適用於DST。