日期:2014-05-17  浏览次数:20412 次

php中本地时区设置
输出当前时间:
<?php
$time   = date('Y-m-d H:i:s');
echo $time;


咦?怎么是 2009-02-26 06:52:58。 本机(上海)时间明明是:2009-02-26 14:52:58
我的时间整整提前了进入未来8个小时:) 大家已经猜出来了,东八区,是时区问题,php如何知道时区呢?通过更改php.ini中的设置:
[Date]
; Defines the default timezone used by the date functions
date.timezone = Asia/Shanghai

重新启动服务器,重新运行代码你就会看到时间输出一致了

php5中php.ini默认是GMT时间,北京是+8时区,
不建议在php.ini中修改时区设置可通过php脚本来设置,若您有自己完全管理权的服务器当然也可以在php.ini中修改默认时区设置。如果没有权限改php.ini,
可以用函数ini_set(),date_default_timezone_set通过以下方法来设置
<?php
date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai'   亚洲/上海
date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'为“亚洲/重庆”
date_default_timezone_set('PRC');//其中PRC为“中华人民共和国”
ini_set('date.timezone','Etc/GMT-8');
ini_set('date.timezone','PRC');
ini_set('date.timezone','Asia/Shanghai');
ini_set('date.timezone','Asia/Chongqing');

通过echo date_default_timezone_get();来查看设置。