当前位置: 首页 > 图文教程 > 网络编程 > PHP > How do I change MySQL timezone?

PHP
Zend Framework 入门:快速上手
Zend Framework 入门:多国语言支持
Zend Framework 入门:错误处理
Zend Framework 入门:页面布局
PHP会话:session 时间设定使用入门
PHP实例:PHP创建动态图像
PHP正则表达式的几则使用技巧
ASP.NET比拼PHP,谁是速度之王?
ImageTTFText函数实现图像加文字水印
整合Discuz用户登陆代码
smarty笔记--模板参数
如何正确理解 PHP 的错误信息
Web技术进阶—PHP构建网站
C/S、B/S软件技术上的比较
apache with ssl安装
如何实现给定日期的若干天以后的日期(有点类似VB中的DateAdd)
如何在PHP中判断某个函数是否被支持
在Linux下安装PHP,APACHE,MYSQL,PERL的方法
Whois 的PHP代码
将数据库的内容读到二维数组并按指定列输出

PHP 中的 How do I change MySQL timezone?


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 193 ::
收藏到网摘: n/a

The MySQL timezone is set to MST (-7 hours GMT/UTC) and is not configurable by you. MySQL is only capable of having 1 timezone setting per mysql daemon. Therefore, you cannot select NOW() and expect a result in a timezone other than MST.
However, there are ways for you to get results that are in your preferred timezone. First determine how many hours your desired timezone is off from MST. For example, EST is +2 hours. PST is -1 hour.
Knowing the time offset, you can replace all your SQL statements of

SELECT NOW();
with

SELECT DATE_ADD(NOW(), INTERVAL 2 HOUR);
which will give you an EST date result. For a result in PST, you would do:

SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR);
If you are working with time in seconds instead of dates, then factor in the offset in seconds. Because there are 3600 seconds in an hour, and EST is 2 hours later than MST, the following converts timestamps from MST to EST:

SELECT unix_timestamp() + (3600 * 2);
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP() + (3600 * 2));
See the MySQL Manual's Date and Time Functions for more information.
Depending on your application, you may also need to do one of the following (but not both):
1. Find every place in your code where a date or time is displayed to the browser and have a user defined function change it to add or subtract the appropriate number of hours before displaying it.
2. Find every place in your code where dates or times are input into your system and have a user defined function add or subtract the appropriate number of hours before storing it.