设为首页 收藏本站
查看: 1182|回复: 0

[经验分享] PHP的php.ini时区设置问题 -PHP的时间相差8小时,设置时区(转载集合)

[复制链接]

尚未签到

发表于 2018-12-21 11:54:57 | 显示全部楼层 |阅读模式
  从php 5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的,也就是显示的时间(无论用什么php命令)都是格林威治标准时间,和我们的时间(北京时间)差了正好8个小时,有以下3中方法可以恢复正常的时间。
  1、最简单的方法就是不要用php5.1以上的版本;
  2、如果要用5.1以上版本,而且不修改php.ini,则需要在关于时间的初始化的语句的上面加上date_default_timezone_set (XXX),或者使用date('Y-m-d G:i:T', strtotime('+8HOUR') )来获取日期时间;
  3,一劳永逸,仅限能修改php.ini。打开php.ini把date.timezone前面的分号去掉,在=后面加XXX,重启http服务(如apache2或iis等)即可。
  关于XXX,大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi(依次为重庆,上海,乌鲁木齐),港台地区可用:Asia/Maca* ,Asia/Hong_Kong ,Asia/Taipei(依次为澳门,香港,台北),还有新加坡:Asia/Singapore,以上没有北京,不过接着往下看,其他可用的值 是:Etc/GMT-8,Singapore ,Hongkong,PRC。PRC是什么?PRC是中华人民共和国啊!(这个就是北京时间吧)以上都是php官方说明档里整理出来的GMT-8下面的地 区,可能会有遗漏,如有需要再上官方文档里查看一下比较好:)
  时区设置相差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是中华人民共和国
  今天在PHP5下用date("H:i:s")时,发现参数"H"取出的时间与window下的时间不对。查了一下资料,发现是PHP5的php.ini里面默认设置为:
  [Date]
  ; Defines the default timezone used by the date  functions
  ;date.timezone =
  如此一来,按照默认的时间便为GMT时间。而我们一般是使用北京时间,可以设置为:date.timezone = PRC或date.timezone =  Asia/Shanghai。即:
  [Date]
  ; Defines the default timezone used by the date  functions
  date.timezone = Asia/Shanghai
  记得不要设置为"Asia/Beijing",老外好象对上海感兴趣点,呵呵。
  如果没有权限改php.ini,可以用函数date_default_timezone_set('PRC');或date_default_timezone_set('Asia/Shanghai');
  这个函数用于设定所有日期时间函数的默认时区。手册上如此说明:“自 PHP 5.1.0  起(此版本日期时间函数被重写了),如果时区不合法则每个对日期时间函数的调用都会产生一条 E_NOTICE  级别的错误信息”。但是“本函数永远返回 TRUE (即使
  在此再学习一下函数:string
  这个函数的返回值遵循以下顺序:1:用 TZ   环境变量(如果非空)。3:date.timezone   配置选项(如果设定了的话)。4:自己推测(如果操作系统支持)。5:如果以上选择都不成功,则返回
  再深入学习一下什么是UTC:
  协调世界时(UTC):
  一种称为协调世界时的折衷时标于1972年面世。为了确保协调世界时与世界时(UT1)相差不会超过0.9秒,有需要时便会在协调世界时内加上正或负闰 秒。因此协调世界时与国际原子时(TAI)之间会出现若干整数秒的差别。位于巴黎的国际地球自转事务中央局(IERS)负责决定何时加入闰秒。
  UTC  = Coordinated Universal Time. 中文名称为协调世界时.
  GMT = Greenwich Mean Time.  中文名称为格林尼治(平)时(这里的"w"是不发音的,而且"Green"要读成"Gren")
  UTC = GMT +/- 0.9 s
  因此 UTC 间中需要进行 "闰秒"  以控制两者相差。
  php5.1x的时区问题导致相差八个小时!收藏
  从php5.10开始,php中加入了时区的设置,在php中显示的时间都是格林威治标准时间,这就造成了我们中国的用户会差八个小时的问题!
  相关设置是修改php.ini中的  date.timezone 参数:
  [Date]
  ; Defines the default timezone used by the date  functions
  ;date.timezone =
  默认是关闭的,只需把注释去掉,改为即可
  [Date]
  ; Defines the default timezone used by the  date functions
  date.timezone = PRC
  其中PRC是“中华人民共和国”!
  其他选项可以参考php手册。
  不过这上面的亚洲地区漏掉了我们的首都北京,不知道老外是不是故意的!
  如果没有修改php.ini的权限,只需要在调用时间日期函数的时候,调用 date_default_timezone_set(’PRC’)  即可!
  也可以调用date_default_timezone_get()来查看当前的时区设置!
  關於XXX,大陸內地可用的值是:
  Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi  (依次為重慶,上海,烏魯木齊)
  港台地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei  (依次為澳門,香港,台北)
  台灣地区可設為:date.timezone =  "Asia//Taipei"
  還有新加坡:Asia/Singapore
  本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/keenx/archive/2006/03/21/631432.aspx


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-654008-1-1.html 上篇帖子: PHP有关时间戳的操作 下篇帖子: 学习使用php+mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表