2012-05-11 5 views
0

Я хочу, чтобы вычислить разницу во времени между двумя объектами Zend_Date (для обратного отсчета калькулятор):Zend_Date :: к югу() и ISO_8601 расчета час разница не так

$now = new Zend_Date($now_datetime, Zend_Date::ISO_8601); 
$end= new Zend_Date($end_datetime, Zend_Date::ISO_8601); 
echo $now->getIso(); 
echo $end->getIso(); 

$expires=array(); 
$expires['expired']=false; 
if($end->isEarlier($now)){ 
    $expires['expired']=true; 
    return $expires; 
} 

$dif=$end->sub($now); 
$expires['days']=($dif->getDay()->toValue()/(60*60*24)); 
$expires['hours']=($dif->getHour()->toValue()/(60*60)); 
$expires['minutes'] = $dif->getMinute()->toValue()/60; 
$expires['seconds'] = $dif->getSecond()->toValue(); 

var_dump($expires); 

За $ now_datetime =»2012-06-30 01 : 01: 01 'и $ end_datetime =' 2012-06-30 23:59:59», результат

2012-06-30T01:01:01+02:00 
2012-06-30T23:59:59+02:00 
//array 
'expired' => boolean false 
'days' => int 0 
'hours' => int 22 
'minutes' => int 58 
'seconds' => int 58 

и это нормально.

Но за $ now_datetime = '2012-06-30 00:01:01 'и $ end_datetime =' 2012-06-30 23:59:59', результат

2012-06-30T00:01:01+02:00 
2012-06-30T23:59:59+02:00 
//array 
'expired' => boolean false 
'days' => int 1 
'hours' => int -1 
'minutes' => int 58 
'seconds' => int 58 

и это НЕ ОК. Я ожидаю, что «часы» будут , а не -1?!

Я бегу MAMP с php 5.3, Zend_Framework 1.10. Что не так с этим? ISO_8601 используется для данных MySQL «» даты и времени, и я не wanto, чтобы изменить() указываете ей ...

+0

Что возвращает $ dif-> getIso()? – ccKep

+0

ваш код работает идеально для меня .. я использую zf 1.11 php5.3 и zend community server .. может быть какая-то настройка по умолчанию вашего маска мешает вашему результату ... – Jaimin

+0

@ccKep - $ dif-> getIso() возвращает '1970-01-02T00: 58: 58 + 01: 00' –

ответ

1

попытка установить

date_default_timezone_set('UTC'); 

в вашем index.php .. это будет работать нормально. .

+0

Правильно, добавив, что ваш код решил проблему! Благодаря Jaimin –

 Смежные вопросы

  • Нет связанных вопросов^_^