PHP时区设置,PHP时间问题

php教程11年前 (2014-08-27)14430

从PHP函数中的时间函数"time()"获取的时间可能不是标准的北京时间!原因是因为:PHP中函数int time ( void )返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。每个地区都有自己的本地时间,在网上以及无线电通信中,时间的转换问题就显得格外突出。整个地球分为二十四个时区, 每个时区都有自己的本地时间。在国际无线电或网络通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC,Universal Time Coordinated),是由世界时间标准设定的全球标准时间。UTC原先也被称为格林威治标准时间(GMT,Greenwich Mean Time),都与英国伦敦的本地时间相同。
PHP默认的时区设置是UTC时间,而北京正好位于时区的东八区,领先UTC八个小时。所以在使用PHP中像time()等获取当前时间的函数时,得到的 时间总是不对,表现是和北京时间相差八个小时。如果希望正确的显示北京时间,就需要修改默认的时区设置,可以通过以下两种方式完成。
如果使用的是独立的服务器,有权限修改配置文件,设置时区就可以通过修改php.ini中的date.timezone属性完成。我们可以将这个属性的值 设置为"Asia/Shang"、"Asia/Chongqing"、"Etc/GMT-8"或PRC等中的一个,再在PHP脚本中获取的当前时间就是北 京时间。修改PHP的配置文件如下所示:
1.date.timezone = Etc/GMT-8      
//在配置文件中设置默认时区为东8区(北京时间)
如果您使用的是共享服务器,没有权限修改配置文件php.ini,并且PHP版本又在5.1.0以上,也可以在输出时间之前调用 date_default_timezone_set()函数设置时区。该函数需要提供一个时区标识符作为参数,和配置文件中date.timezone 属性的值相同。该函数的使用如下所示:
2.在代码中设置时区
date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai'   亚洲/上海
date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'为“亚洲/重庆”
date_default_timezone_set('PRC');//其中PRC为“中华人民共和国”
注意:以上3种方法,任意一个都可以满足我们需求。
2.echo date('Y-m-d H:i:s', time());        //输出的当前时间为北京时间
在 php.ini 中,默认是 date.timezone = UTC。修改为中国时区,修改为 date.timezone = PRC。如果直接写 GMT 格式的,是 date.timezone = Etc/GMT+8。
另外,也可以在 PHP 页面头中设置。
date_default_timezone_set('PRC');
测试:
echo date('Y-m-d H:i:s');


php 时区设置相差8小时间程序与php.ini配置方法

时区设置相差8小时间程序与php.ini配置方法
/*
1.设置php.ini,在php.ini中找到data.timezone= 去掉它前面的;号,然后设置data.timezone="asia/shanghai";即可。

2.通过php页面设置,我们可以在php页面中加入date_default_timezone_set('asia/shanghai');

或者ini_set('date.timezone','asiashanghai');

3.通过修改.htaccess文件,修改.htaccess文件有两种办法,下面的两条语句只要有一条即可

php_value date.timezone asia/shanghai

3,最简单的方法就是不要用php5.1以上的版本

4,如果一定要用,而且不能修改php.ini,则需要在关于时间的初始化的语句的
上面加上 date_default_timezone_set (xxx);

5,一劳永逸,仅限能修改php.ini。打开php.ini查找date.timezone 去掉前面的分号
= 后面加xxx,重启http服务(如apache2或iis等)即可

关于xxx,大陆内地可用的值是:asia/chongqing ,asia/shanghai ,asia/urumqi (依次为重
庆,上海,乌鲁木
齐)
港台地区可用:asia/macao ,asia/hong_kong ,asia/taipei (依次为澳门,香港,台北)
还有新加坡:asia/singapore
老外好像把北京漏调了
其他可用的值是:etc/gmt-8 ,singapore ,hongkong ,prc
prc是什么?prc是中华人民共和国啊-_-

标签: php

“PHP时区设置,PHP时间问题” 的相关文章

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。