如何解决Zend框架的日期时间时区问题
在Zend Framework项目中,我使用ѭ0来节省用户输入时间。但是用例有些东西,当我从某个时区插入数据时,应将其转换为另一个时区的用户。 例如,我要插入来自“ 1”时区的数据,另一个用户应通过自己时区中的转换来观看数据。 我经历过以前的类似话题,很遗憾无法完全掌握。 提前致谢。解决方法
尽管Zend_Date具有处理日期/时间的出色功能,但众所周知它比PHP的本机Date对象和函数要慢得多。
但是,对于您的问题,根据Zend文档:内部日期始终存储为时间戳和GMT。因此,时区意味着应该减去或增加多少小时才能获得自己所在时区和地区的实际全球时间。
因此,查看api有几种方法可以帮助您在显示时轻松计算时区差异,甚至更好地切换日期对象的时区。如果将日期存储在数据库中,则可能更容易存储
$date->getUnixTimestamp()
返回的时间戳而不是日期对象的输出。要么,要么您还需要原始时区来计算偏移量。
根据示例#6中的文档,对您的需求进行了稍微修改的示例:
date_default_timezone_set(\'Asia/Dhaka\');
// create a date object
$date = new Zend_Date(\'06.15.2011 00:00:00\',Zend_Date::ISO_8601,\'de\');
print $date;
$otherdate = clone $date;
$otherdate->setTimezone(\'America/Montreal\');
print $otherdate;
, 我写了一个简单的方法来解决这个问题:
public function timeZoneFormat($time)
{
$currentTimeZone = date_default_timezone_get();
$timestamp = strtotime($time);
$customTime= new Zend_Date();
$customTime->setTimestamp($timestamp);
$customTime->setTimezone(\"$currentTimeZone\");
return $customTime;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。