永久修改:更改phpini文件中的datatimezone = PRC 这是中国时间。重启Apache服务后生效。
临时修改:在使用格式化输入时间之前,添加ini_set('datetimezone','Asia/Shanghai'); 或者data_default_timezone_set('PRC');//date_default_timezone_set() 函数设置用在脚本中所有日期/时间函数的默认时区。
从php510开始,phpini里加入了datetimezone这个选项,默认情况下是关闭的也就是显示的时间(无论用什么php命令)都是格林威治标准时间,和我们的时间(北京时间)差了正好8个小时,有以下3中方法可以恢复正常的时间。
1最简单的方法就是不要用php51以上的版本;
2如果一定要用,而且不能修改phpini,则需要在关于时间的初始化的语句的上面加上 date_default_timezone_set (XXX)。
php日期格式转换总结:
<php
//将当前时间转换成yyyy-mm-dd格式串,再转换成日期格式,绕了一圈哈
echo strtotime(date('Y-m-d',time())' 00:00:00');
//将GNU 日期输入格式的字符转换成时间
echo strtotime('now');
//标准的字符串转换成时间
$t = '2012-9-10 15:18:06';
$time = strtotime($t);
//将时间转换成日期字符yyyymmdd,再转换成整型格式
$d = intval(date('Ymd',$time));
echo '付款时间:'$d;
<php
header("Content-type: text/html; charset=utf-8");
$txDate = '2016-06-16';
$dateTime1 = strtotime($txDate); //int 1466028000 将英文文本日期时间解析为 Unix 时间戳:
$dateTime2= date("Y-m-d H:i:s",$dateTime1); //string '2016-06-16 00:00:00'
(length=19) Date() 函数把时间戳格式化为更易读的日期和时间。
//拼接今日最后时间2016-06-16 23:59:59
$dateTime= date("Y-m-d H:i:s",strtotime(date("Y-m-d",strtotime($dateTime2))"+ 23 hours 59 minutes 59 seconds ")); //string '2016-06-16 23:59:59' (length=19)
$sql = select form `vvt_user` where userid = 100 AND date_time >= $dateTime2 AND date_time <= $dateTime;>
PHP5版本开始,获取系统时间时,时间比当前实际时间少8个小时。原因是PHPini中没有设置时区时,默认使用的是UTC时间,所以在中国时间要少8小时。因此要加8小时。
//解决方案:
1在PHPini文件中修改设置北京时间。
datetimezone = Asia/Shanghai
2在PHP程序中设置。
<php
date_default_timezone_set("Asia/Shanghai");
>
3在使用时间时多加83600秒(也就是8小时)
<php
echo date("Y-m-d H:i:s",time()+83600);
>
//以上3种方法根据自己情况,灵活使用
这个的使用方法多种多样
自PHP53以后,PHP是推荐在程序中使用ini_set对PHP初始化进行设置的,但这个函数依旧可用。
使用方法如下,下面的代码是我找来的,非原创:
——————————————
<php
echo function_exists(date_default_timezone_set)"<br>";//在这他总是返回1,这函数是判断这里面的字符是不是一个定义了的函数名
echo date('Y-m-d H:i:s')"<br>";//默认时区的时间
echo date_default_timezone_set("Etc/GMT")"<br>";//这是格林威治标准时间,得到的时间和默认时区是一样的
echo date('Y-m-d H:i:s')"<br>";
echo date_default_timezone_set("Etc/GMT+8")"<br>";//这里比林威治标准时间慢8小时
echo date('Y-m-d H:i:s')"<br>";
echo date_default_timezone_set("Etc/GMT-8")"<br>";//由上一个不能难想像,我们比那快8小时所以减8
echo date('Y-m-d H:i:s')"<br>";
echo date_default_timezone_set('PRC')"<br>"; //设置中国时区
echo date('Y-m-d H:i:s')"<br>";//中国标准时间
>
这个设置最好是在你的程序开头的时候进行设置,毕竟是对PHP进行控制的东西嘛,如果你写的代码比较有条理,你可以在一个config文件中对它进行定义,这样日后 你整理和更改起来也会异常方便。
以上就是关于PHP报时区错误 ,不要说修改date.timezone="XXX" 都试过了不管用,centos6.3系统 php 5.4.15 mysql5.5全部的内容,包括:PHP报时区错误 ,不要说修改date.timezone="XXX" 都试过了不管用,centos6.3系统 php 5.4.15 mysql5.5、php时间格式怎么转换、<php echo date("Y-m-d H:i:s",$rs->post_time+8*3600)>是什么意思为什么要+8*3600等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)