php中用date()取出的当前时间查8个小时的解决方法。

这个办法是在别人的帖子里边看的,原来的帖子在这里。

http://blog.csdn.net/change518/article/details/8448459

在这里感谢原作者的帮忙,帮助我解决了这个问题。

详细的步骤在下面,大家请看。

一、原因

从php5.1.0开始,php.ini里加了date.timezone这个选项,并且默认情况下是关闭的
也就是显示的时间(无论用什么php命令)都是格林威治标准时间
和我们的时间(北京时间)差了正好8个小时。

二、解决办法

方法一:在获取时间前加如下代码:
date_default_timezone_set(PRC);

方法二:改php.ini里面的配制,具体操作如下:
打开php.ini查找date.timezone 去掉前面的分号= 后面加XXX(PRC),重启http服务(如apache2或iis等)即可
如:date.timezone=PRC

关于XXX,大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi ,PRC(依次为重庆,上海,乌鲁木齐,中华人民共和国)
港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)
还有新加坡:Asia/Singapore
其它:Etc/GMT-8 ,Singapore ,Hongkong

方法三:echo date("Y-m-d H:i:s", time()+8*60*60);

例子:

[php] view plaincopy

  1. <?php
  2. //显示当天日期及时间
  3. date_default_timezone_set(PRC);
  4. $date=date("Y-m-d H:i:s");
  5. echo $date."<br>";
  6. //显示昨天日期及时间
  7. $yesterday=date("Y-m-d H:i:s",time()-24*60*60);
  8. $y1=date("Y-m-d H:i:s",mktime()-24*60*60);
  9. echo $yesterday."<br>";
  10. echo $y1."<br><br>";
  11. $z=date("z")+1;  //周为:0123456
  12. echo "今天是2010的第".$z."天<br><br>";
  13. $z=date("z")+5;  //周为:0123456 1月1日星期五 4+1=5
  14. $w=ceil($z/7);
  15. echo "<br>今天是2010的第".$w."周<br><br>";
  16. $time=time();
  17. echo $time;
  18. ?>

附:date时间格式

date("Y-m-d H:i:s"); 显示的格式: 年-月-日 小时:分钟:秒

相关时间参数:

a - "am" 或是 "pm" 
A - "AM" 或是 "PM" 
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31" 
D - 星期几,三个英文字母; 如: "Fri" 
F - 月份,英文全名; 如: "January" 
h - 12 小时制的小时; 如: "01" 至 "12" 
H - 24 小时制的小时; 如: "00" 至 "23" 
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12" 
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23" 
i - 分钟; 如: "00" 至 "59" 
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31" 
l - 星期几,英文全名; 如: "Friday" 
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12" 
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12" 
M - 月份,三个英文字母; 如: "Jan" 
s - 秒; 如: "00" 至 "59" 
S - 字尾加英文序数,二个英文字母; 如: "th","nd" 
t - 指定月份的天数; 如: "28" 至 "31" 
U - 总秒数 
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六) 
Y - 年,四位数字; 如: "1999" 
y - 年,二位数字; 如: "99" 
z - 一年中的第几天; 如: "0" 至 "365"

到这里就结束了,因为我的不是i和弄复杂,所以我用的是第一种方法,个人觉得第一种方法比较简单也很好解决。

时间: 2024-12-31 18:00:22

php中用date()取出的当前时间查8个小时的解决方法。的相关文章

ECSHOP后台登陆后一段时间不操作就超时的解决方法

ECSHOP后台登陆后一段时间不操作就超时的解决方法 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2012-05-27 客户生意比较好,因此比较忙,常常不在电脑前,经常打开后台长时间不操作,等回到电脑前操作时,每次都超时,需要从新登陆,因此,客户希望后台的登录时间尽量长些,解决这个问题主要是要在date/config.php 中设置session的值,session默认的是“1440”,可尽量大些,比如“3600”等等!

PHP date函数输出时间少8小时的解决方法

使用某些PHP服务器套件开发PHP程序的时候,调用date函数输出时间会少8小时,下面提供一个解决的方法. <?php date_default_timezone_set('PRC'); echo date("Y-m-d H:i:s",time()); ?>

bootstrap时间插件 火狐不显示 完美解决方法

原文链接:http://www.phpbiji.cn/article/index/id/141/cid/4.html bootstrap时间插件火狐 bootstrap-datetimepicker火狐 不管用 不显示:解决方案:     在项目开发中用到了bootstrap-datetimepicker的时间插件,但是在火狐下却不能使用,在网上找到的方法什么外层模态框去掉tabindex="-1" role="dialog"属性,不管用的!!或许仅仅只是适用于他的

Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法

今天被我遇到了,相差八小时,,,tzselect过了都不行,还得用ntupdate核一下. 网上找的,备不时之需要. ~~~~~~~~~~~~~~~~ 1.在linux中,用date查看时间的时候显示: 2013年 2月 17日 星期三 19:04:14 CST 世界协调时间(Universal Time Coordinated,UTC): GPS 系统中有两种时间区分,一为UTC,另一为LT(地方时)两者的区别为时区不同,UTC就是0时区的时间,地方时为本地时间,如北京为早上八点(东八区),U

IE 下js里面new Date(&quot;2017-07-11 08:00:00&quot;) 出现NAN的问题以及解决方法

在js里面用了这个方法   var  $date= new Date("2017-07-11 08:00:00") 可是打印的时候为 NAN.查了下  只有IE下有这个问题,然后我找了下 ,发现只要把  2017-07-11改成 2017/07/11这种格式就行了 ############ 网上说是IE浏览器的问题,我经过测试发现mac中Safari浏览器也存在这个问题,出现NAN的情况说明不是数值.date对象竟然还有这样的问题,长知识了. 原文地址:https://www.cnbl

MBProgressHUD长时间加载无法取消的解决方法

使用MBProgressHUD时,加载网路数据,或者等待webview加载完毕,长时间的等待导致体验不佳,这时候希望点击屏幕取消加载动画效果: // MBProgressHUD.h @protocol MBProgressHUDDelegate <NSObject> @optional /** * Called after the HUD was fully hidden from the screen. */ - (void)hudWasHidden:(MBProgressHUD *)hud

datetimepicker 时间控件 1899年问题以及解决方法

bootstrap-datetimepicker时间控件显示问题,显示1899年. 案例回顾: 第一次页面加载完点击时间控件,显示正常. 第二次点击的时候,发现显示为1899年 原因调查:结果发现日期格式化的代码出错了 这类问题可以去读一下bootstrap-datetimepicker的源代码,我们会发现它的日期format格式里面没有上述的这种日期格式,也就导致了日期控件选择时间后无法格式化导致内部异常出现了1899年这样的滑稽bug. 解决方案有2个, 一是直接修改format: 'yyy

centos linux 系统上 log4j打印的时间与CST时间差8小时的解决方法

在启动参数上加上时区设置-Duser.timezone=GMT+08 java -jar -Duser.timezone=GMT+08 target/micservice_histclientsdataetl-1.0-SNAPSHOT-jar-with-dependencies.jar local

vm虚拟机时间和主机时间相差几小时的解决方法

步骤一: #vi  /etc/sysconfig/clock ZONE="Asia/Shanghai" 步骤二: #cp /usr/share/zoneinfo/Asia/Shanghai   /etc/localtime 步骤三: ntpdate edu.ntp.org.cn