2011-10-25 140 views
3

我有問題轉換時間戳,這是一個UTC日期時間,到另一個時區使用Zend框架。我的默認時區爲歐洲/巴黎PHP:轉換timezone的時區

$timestamp = 1319530421; 
$date = new Zend_Date(); 
$date->setTimezone('UTC'); 
$date->set($timestamp, Zend_Date::TIMESTAMP); 
echo $date->get(Zend_Date::W3C).' - '.$date->getTimezone().'<br />'; 
$date->setTimezone('Europe/Paris'); 
echo $date->get(Zend_Date::W3C).' - '.$date->getTimezone().'<br />'; 

呼應

2011-10-25T08:13:41+00:00 - UTC 
2011-10-25T10:13:41+02:00 - Europe/Paris 

而是因爲時間戳

2011-10-25T10:13:41+00:00 - UTC 

我在做什麼錯了這是錯的?謝謝

+2

請您澄清一下問題。我不明白你認爲輸出錯誤。另外,是否有任何特別的原因使用緩慢和繁瑣的Zend_Date API。您使用的本地DateTime API不提供哪些功能? – Gordon

+0

我使用時間戳。那些存儲在數據庫中的是UTC。我只是想將它們轉換爲用戶的時區。另一方面,我不需要用Zend_Date來完成。我只是使用zend框架。 PHP解決方案對我來說是有效的。 – jerkan

+0

但日期有什麼問題? 1319530421真的是2011-10-25T08:13:41 GMT/UTC。看到http://codepad.viper-7.com/HxJgeJ或嘗試與http://www.epochconverter.com/ – Gordon

回答

0

你在你的例子中錯誤的時間戳。它的日期是:

date_default_timezone_set('UTC'); 

$timestamp = 1319530421; 

echo date('c e', $timestamp); # 2011-10-25T08:13:41+00:00 UTC 

所以這是正確的與你的例子,只是你的期望不是。