在php中默认时区与中国相关8小时了,下面我来给大家介绍在于linux中与windows系统解决php时差8小时的方法,希望对各位同学有帮助.
大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi,依次为重庆,上海,乌鲁木齐,港台地区可用:Asia/Macao,Asia/Hong_Kong,Asia/Taipei,依次为澳门,香港,台北.
还有新加坡:Asia/Singapore
其他可用的值是:Etc/GMT-8,Singapore,Hongkong,PRC.
一,Linux设置时区,以CentOS5.5为例,代码如下:
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
MySQL中设置时区,编辑MySQL配置文件:my.cnf/my.ini,在[mysqld]下加上如下代码:
default-time-zone = '+8:00'
实际上,如果MySQL所在OS的时区已经设置正确,则可以不用在MySQL中设置时区,因为MySQL服务启动的时候,会自动采用OS的时区.
PHP中设置时区,在PHP配置文件PHP.ini中设置如下代码:
date.timezone = "Asia/Shanghai"
设置好后,最好重启下系统,如果是购买的Web空间,没有权限在Linux PHP MySQL中配置时区,那也好办,只需要在PHP脚本中设置和OS对应的时区,因为MySQL中默认使用的是OS的时区,假设OS的时区是'Asia/Shanghai',使用下面两条语句其中之一即可,代码如下:
ini_set('date.timezone', 'Asia/Shanghai');
date_default_timezone_set('Asia/Shanghai');
二,windows中我们要在PHP.INI中设置时区,代码如下:
date.timezone = PRC
在代码中设置时区,如下:
1 date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai' 亚洲/上海
2 date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'为“亚洲/重庆”
3 date_default_timezone_set('PRC');//其中PRC为“中华人民共和国”
4 ini_set('date.timezone','Etc/GMT-8');
5 ini_set('date.timezone','PRC');
6 ini_set('date.timezone','Asia/Shanghai');
7 ini_set('date.timezone','Asia/Chongqing');
以上七种方法,任意一个都可以满足我们需求,系统初始化时,加上如下代码:
ini_set('date.timezone','Asia/Shanghai');
或 date_default_timezone_set("PRC"); |