Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
过去的PHP日期不匹配_Php_Date_Time - Fatal编程技术网

过去的PHP日期不匹配

过去的PHP日期不匹配,php,date,time,Php,Date,Time,首先,我想将日期转换为PHP的整数 echo strtotime('08-04-2016 10:33:45 GMT+7'); 结果是:1460086425。但当我再次检查代码时: $timezone = +7; echo gmdate("H:i:s | d-m-Y ",1460086425 + 3600*($timezone+date("I"))); 这就是结果:11:33:45 | 08-04-2016 为什么与11:33:45 | 08-04-2016和08-04-2016 10:33:

首先,我想将日期转换为PHP的整数

echo strtotime('08-04-2016 10:33:45 GMT+7');
结果是:1460086425。但当我再次检查代码时:

$timezone = +7;
echo gmdate("H:i:s | d-m-Y ",1460086425 + 3600*($timezone+date("I")));
这就是结果:
11:33:45 | 08-04-2016


为什么与
11:33:45 | 08-04-2016
08-04-2016 10:33:45
不同超过一个小时。

我想知道您的时区设置是否不正确。我最近遇到了一个类似的问题,这是由于夏令时应用不正确造成的。我认为,如果服务器不知道它在哪里,那么它就无法知道DST何时开始和结束

要了解这是否适用于您,请尝试
echo ini_get('date.timezone')在脚本中-你得到了什么?如果问题在web脚本中,请确保在web上下文中执行此操作;如果问题在控制台上,请确保在控制台上执行此操作。这是因为用于控制这一点的PHP设置通常是单独设置的

如果您发现您的设置没有给出通常为TZ指定的正确城市,请在
php.ini
文件中更改它。例如,对于我来说,我使用以下方法:

date.timezone = Europe/London
据我所知(在检查时),GMT+7时的区域未观察到DST。另外,
date
使用在
date.timezone
中设置的时区,该时区对于您的位置可能是正确的,但对于任何其他位置可能都不正确


最好使用并指定正确的。通过这种方式,时区偏移(以及DST是否处于活动状态)出错的几率显著降低。

更改为echo gmdate(“h:i:s | d-m-Y”,1460086425+3600*($timezone+date(“i”))$费利普斯马丁斯,谢谢你的帮助,但它仍然是“11:33:45 | 08-04-2016”。偏差为一小时。