How to set mysql timezone

today ,i got an error when use from_unixtime in my sql, then i go into the mysql database and execute

it’s return a wrong time with my current time.then i get timezone from mysql

in the end,i  remember  that i set an incorrect system zone when i install mysql,so mysql get wrong time from system.

so ,now ,how do i solve this? i can set timezone for myself.

in the file “my.cnf” in the [mysqld] section

@@global.time_zone variable

@@session.time_zone variable


an another way is use  
CONVERT_TZ

http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html

PHP中使用strtotime的时区问题

由于没有认真阅读手册,在使用strtotime转换时间的时候出现的错误

通过strtotime(2013-02-04)转换的时间戳 再经过转换工具还原回去后发现 时间已经变为“2013-02-04 06:00:00”

相差了6个小时,程序员的嗅觉告诉我这一定和时区有关系了。

于是重新翻阅了手册里的strtotime函数(http://il1.php.net/manual/zh/function.strtotime.php)

发现了下面这段

本函数将使用 TZ 环境变量(如果有的话)来计算时间戳。自 PHP 5.1.0 起有更容易的方法来定义时区用于所有的日期/时间函数。此过程在date_default_timezone_get() 函数页面中有说明。

于是,使用date_default_timezone_get()函数输出服务器的时区,竟然是Europe/Berlin,好吧看来需要更改服务器的时区了。

更改服务器的时区有2种方法

1、修改php.ini文件,找到以下内容

去掉date.timezone =前的分号,在等号后面加上 Asia/Shanghai 或者 Asia/Chongqing

2、在PHP中需要设置时区的地方使用date_default_timezone_set()函数设置

例如 date_default_timezone_set(‘Asia/Shanghai’);

由于我的项目里使用的CI框架,于是在config/config.php的配置文件末尾加上以下代码就可以全局设置时区