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

PHP
一个用于网络的工具函数库
针对初学PHP者的疑难问答(1)
在PHP中执行系统外部命令
怎样在php中使用PDF文档功能
怎样在PHP中通过ADO调用Asscess数据库和COM程序
截获网站title标签之家内容的例子
如何跨站抓取别的站点的页面的补充
PHP 存取 MySQL 数据库的一个例子
PHP用户指南-cookies部分
PHP中一个控制字符串输出的函数
将OICQ数据转成MYSQL数据
在线增减.htpasswd内的用户
PHP实现图片简单上传
从C/C++迁移到PHP——判断字符类型的函数
PHP+APACHE实现用户论证的方法
vBulletin HACK----关于排版的两个HACK
PHP3 safe_mode 失效漏洞
一个改进的UBB类
如何在PHP中进行身份认证
利用递归把多维数组转为一维数组的函数

PHP 中的 How do I change MySQL timezone?


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