【发布时间】:2011-12-15 00:54:16
【问题描述】:
我在使用 Zend Framework 将时间戳(即 UTC 日期时间)转换为另一个时区时遇到问题。我的默认时区是欧洲/巴黎
$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
我做错了什么?谢谢
【问题讨论】:
-
你能澄清一下这个问题吗?我不明白你认为输出有什么问题。此外,使用缓慢而繁琐的 Zend_Date API 是否有任何特殊原因。您使用了哪些原生 DateTime API 不提供的功能?
-
我使用时间戳。那些存储在数据库中的都是UTC。我只想将它们转换为用户的时区。另一方面,我不必使用 Zend_Date。我只是使用zend框架。 PHP 解决方案对我有效。
-
但是日期有什么问题? 1319530421 真的是 2011-10-25T08:13:41 GMT/UTC。请参阅codepad.viper-7.com/HxJgeJ 或尝试使用epochconverter.com
-
那么,我想我有一个解析日期的错误。我的错。感谢您的帮助。
-
没问题 :) 帮自己一个忙,试试原生 DateTime API。
标签: php zend-framework timezone timestamp