当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法

PHP
连载3:利用PHP创建由Oracle驱动的SOAP服务
连载4:利用PHP创建由Oracle驱动的SOAP服务
理解Zend 框架 用PHP构建完美的阅读器
利用单元测试在每个层上对PHP代码进行检查
视频演示:Zend Platform功能特性详解
967个函式列表 PHP常用语法索引速查表
心得:PHP对文本数据库的五大基本操作方法
日记整理:Apache+MySql+PHP的快速安装
怎样才能成为PHP高手?学会"懒惰"的去编程
使用m17n实现对各国语言间的代码移植和转换
理解Zend 框架(1):构建完美的阅读器
理解Zend 框架(4): 用Zend_HTTP_Client 获取无提要的内容
ajax的最大缺点是什么?对搜索引擎的支持较弱
windows环境下mysql数据库的主从同步备份步骤
用AJAX实现聊天功能(part 1)
实例:用PHP实现Ftp用户的在线管理
利用PHP和CSS改变网页文字大小
PHP开发大型项目的方法[OOP思想]
直接读取数据库信息的三种方法
PHP5.3中新增的魔术常量__DIR__

PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 76 ::
收藏到网摘: n/a

北京时间是东8区,可能是时区问题.但是此前都没问题啊,经过google发现原来从php5.1.0开始,php.ini里加入了 date.timezone这个选项,默认情况下是关闭的

问题:

php函数date("Y-n-d H-i-s"); 输出的时间与当地时间相差8个小时.

解决思路

北京时间是东8区,可能是时区问题.但是此前都没问题啊,经过google发现原来从php5.1.0开始,php.ini里加入了 date.timezone这个选项,默认情况下是关闭的,也就是显示的时间(无论用什么php命令)都是格林威治标准时间,和我们的时间(北京时间)差了正好8个小时。

在调用date()函数之前先设定时区。

方法一:
date_default_timezone_set('PRC');
没有返回值。下面再直接使用date函数就OK了
$time = date(Y."年".m."月".d."日".G."时".i."分");

方法二:

修改php.ini中的;date.timezone = 为date.timezone = "Asia/Shanghai"(或者改为date.timezone = PRC)并去掉前面的分号,重启Apache即可。