php - 使用 Zend_Date 处理日期和时区

标签 php zend-framework date

我有一个使用 Zend_Date 来显示日期的应用程序。 Zend_Date 实例是使用来自 MySQL 的日期时间数据、用户输入和当前日期创建的。

我希望我的用户能够指定他们的时区,并且所有日期都以他们的本地时间显示。

目前我的代码是这样工作的:

$date = '2009-01-01 10:30:00';

$date = new Zend_Date($date, Zend_Date::ISO_8601);

echo $date->get(Zend_Date::TIME_MEDIUM); //10:30:00

$date->setTimezone('Australia/ACT');

echo $date->get(Zend_Date::TIME_MEDIUM); //21:30:00

这可行,但需要在每个日期调用 setTimezone。有没有更简单的方法来管理时区?

我也一直在考虑将 SET time_zone 与 MySQL 结合使用,以从 MySQL 返回调整后的数据。然后我只需要调整在 PHP 脚本中创建的时区日期。

如果有人有经验,我很想听听处理这个问题的最佳方法。

谢谢

最佳答案

我认为设置 PHP 时区应该为所有后续 Zend_Date 实例设置默认值。例如:

date_default_timezone_set('Europe/Vienna');

来自Zend_Date section in the Zend Framework Reference Guide :

In PHP, we can adjust all date and time related functions to work for a particular user by setting a default timezone according to the user's expectations. When creating Zend_Date instances, their timezone will automatically become the current default timezone!

关于php - 使用 Zend_Date 处理日期和时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1002704/

相关文章:

php - 当我单击导出时,phpmyadmin 中出现此错误

php - Zend Framework 1.12 中的 SQL 子查询

zend-framework - 如何在zend框架中注册自定义库

php - Zend PDF 自动换行

android - 在Android中检索两个不同日期之间的记录

php - 24 小时格式的日期和时间

php - PHP 中的 MongoDB - 如何将项目插入集合中的数组?

php - 时区 : Mysql save UTC and PHP read America/Sao_Paulo

php - HTML、CSS 导航栏元素通过包含相同文件突出显示,在所有必需页面中包含导航栏

javascript - 时刻js从字符串中提取年份