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

PHP
初学者入门:细述PHP4的核心Zend
网友分享:php与XML、XSLT、Mysql结合运用
DISCUZ架构:积分系统代码分析一
DISCUZ架构:积分系统代码分析二
DISCUZ架构:积分系统代码分析三
设置COOKIE保留时间为浏览器进程
通过ADO调用Access数据库和COM程序
判断一数是否在一已知数组中的函数
如何使用PHP中的日期和时间函数
一个PHP中常用email校验语句的解释
如何利Mcrypt扩展库进行加密和解密
PHP脚本的8个技巧(4)动态创建图象
实用技巧:PHP截取中文字符串的问题
PHP与已存在的Java应用程序集成
PHP3中使用ORACLE函数的使用说明
PHP技巧:得到一个字符串的最后一个字符
Linux系统下让PHP提高性能的工具APC
为您详解PHP开发工具的使用与分析
如何使用PHP开发高效的WEB系统
用 PHP V4 开发的代码迁移到 PHP V5

PHP 中的 How do I change MySQL timezone?


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 132 ::
收藏到网摘: 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.