PHP报时区错误 ,不要说修改date.timezone="XXX" 都试过了不管用,centos6.3系统 php 5.4.15 mysql5.5

PHP报时区错误 ,不要说修改date.timezone="XXX" 都试过了不管用,centos6.3系统 php 5.4.15 mysql5.5,第1张

永久修改:更改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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/10071166.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存