为什么strtotime(1970年1月1日)在PHP中返回-3600而不是0?

时间:2013-04-03 08:02:43

标签: php datetime

使用strtotime获得1 January 1970之后的秒数,但是如果时钟设置为-3600而我得到{{1},我不明白为什么会得到12.00AM当时钟设置为0时,那1 AM是什么?这是时区的问题吗?

1 HOUR
  

P.S我没有在我的PHP文件中设置任何时区,或者我甚至没有   修改了我的.ini文件(Fresh Installed XAMPP)

更新:时区:欧洲/柏林

4 个答案:

答案 0 :(得分:8)

这很可能是由于您当地的time zone 什么是

的输出
var_dump(date_default_timezone_get());

在那台机器上?
您还可以检查mktime和gmmktime之间的区别

echo " mktime: ", mktime(), "\n";
echo " gmmktime: ", gmmktime(), "\n";

答案 1 :(得分:6)

您的时区必须设置为UTC + 1。您的时区午夜发生在UTC午夜前一小时,这解释了-3600秒的偏移量。

您可以将时区设置为UTC以获得预期结果:

date_default_timezone_set('UTC');

答案 2 :(得分:4)

您需要检查您的时区设置。或者如果将default_time_zone设置为UTC,您将获得所需的结果。

date_default_timezone_set('UTC');

答案 3 :(得分:1)

添加此项以设置时区'Europe / Berlin'

 date_default_timezone_set('Europe/Berlin');