php设置时区的解决方案

发布时间:2019-11-17编辑:脚本学堂
在php中设置时区的方法,为什么要设置时区呢,因为php date()默认输出的时间慢8个小时,所以需要做好php时区的设置,要不时间显示就会错乱。

本节内容:
php date()输出的时间慢8个小时的解决方法

在xp上开发的php程序,当时的开发环境是用的一个集成的软件(appserv),没有什么问题。

后来重新配置了运行环境(windows 2000 server下),apache2,php5,mysql5都是手动安装配置的,结果程序里的时间比正常的时候慢了整整8个小时,后来一查才知道,原来是时区设置的有问题。   

在php.ini 中找timezone那一项 改成date.timezone ="Etc/GMT-8"(注意去掉前面的;)然后重启web服务器就好使了。
以前也遇到过一次,记得上次一直在找apache的问题没有找到,后来才知道是php的问题。

代码:
 

复制代码 代码示例:

<?php
/**
* 没有date_default_timezone_set('Asia/Shanghai');这句,
* 显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。
*/
date_default_timezone_set('Asia/Shanghai');
echo date("H : i : s");

//如果php>5.1.0
if(phpversion()>='5.1.0')
{
     //获取php当前使用时区
     //echo date_default_timezone_get();
     //设置时区
     date_default_timezone_set('Asia/Shanghai');
}
echo date('Y-m-d H:i:s',time());

//另类解决方案
echo date( "H : i : s",time() + 3600 * 8);
?>
 

总结:
程序设置方法:
输出时间前加上语句:
 

复制代码 代码示例:
<?php
 date_default_timezone_set("Asia/ShangHai");
?>。

修改 php.ini配置文件方法:
找到 time_zone语句,去掉前面;,修改为date.timezone = "Etc/GMT-8"; 重启服务器。