易腾动力社区

标题: php更改默认时区,php date('Y-m-d H:i:s') [打印本页]

作者: jaly26    时间: 2013-7-3 22:38
标题: php更改默认时区,php date('Y-m-d H:i:s')
关于php时区错误问题
date( "Y-m-d   G:i   T ",time())   取出来的时间和本地时间老差8个小时,电脑系统确定是中国标准时(GMT+8),最后终于找到了问题所在:

原来从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的
也就是显示的时间(无论用什么php命令)都是格林威治标准时间
和我们的时间(北京时间)差了正好8个小时,有以下3中方法可以恢复正常的时间。
由于程序最后还是会把地名转为时区来计算,所以当你使用的不是内置的区域的时候,程序将自动使用格林威治标准时间。
php5.2.4之前的版本无需设置默认的时区,使用date函数生成时间时自动根据所在时区创建时间,但最近发现在php5.2.4下生成时间的时区是GMT,而不是GMT+8,所以显示时间时会相差8个小时。
修改php环境默认时区有2个方法:
1、修改php.ini
打开php.ini文件,找到 date.timezone 那一行,去掉前面的“;” ,修改为你需要的时区,例如:date.timezone = Asia/Shanghai
关于date.timezone的取值
大陆内地可用的值是:Asia/Chongqing   ,Asia/Shanghai   ,Asia/Urumqi   (依次为重庆,上海,乌鲁木齐)
港台地区可用:Asia/Macao   ,Asia/Hong_Kong   ,Asia/Taipei   (依次为澳门,香港,台北)
还有新加坡:Asia/Singapore
其他可用的值是:Etc/GMT-8   ,Singapore   ,Hongkong   ,PRC
PRC是中华人民共和国
以上都是我从php官方说明档里整理出来的GMT-8下面的地区,可能会有遗漏
地址http://www.php.net/docs.php

2、使用php函数
如果你使用北京时间,就像这样就可以了。date_default_timezone_set("Asia/Shanghai");

注:确认修改正确的php.ini文件,通过phpinfo()可以查看php.ini文件所在的路径,修改php.ini文件后重启apache。

13位时间戳:number_format(microtime(true),3,'','')





欢迎光临 易腾动力社区 (http://bbs.yidz.cn/) Powered by Discuz! X3