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

PHP
PHP泛安全
PHP中引用&的使用注意事项
实例应用:使用PHP来进行加密与解密
PHP中的“人”类
Smarty 学习随记!
教你如何榨干PHP
菜鸟编程十大好习惯
用AJAX实现聊天功能
提高HTML代码的效率
神奇的代码
五个成功习惯 让正则表达式经受的起反复试验
牛刀小小试 PHP5中PDO的简单使用
用 PHP 走向动态
10个网络规划PEAR类 来简化PHP编码
PHP程序中的特效应用 实用珍藏代码举例
透析PHP的配置文件
APACHE安装笔记
[jsp+php]Windows2000下整合Apache2与Tomcat4
打造简单的PHP&MYSQL留言板
致初学者:PHP比ASP优秀的七个理由

PHP 中的 How do I change MySQL timezone?


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