本节内容:
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.ini配置文件方法:
找到 time_zone语句,去掉前面;,修改为date.timezone = "Etc/GMT-8"; 重启服务器。