2011-05-28 45 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。