10

strtotime过去用过几秒钟1 January 1970,但我不明白为什么-3600时钟设置为时12.00AM会得到0,而时钟设置为时会得到,那是1 AM怎么回事1 HOUR?是时区的问题吗?

echo 'I Expect 0 Here '.strtotime('1st January 1970').'<br />';
//This gives me -3600

echo 'I Expect 3600 Here '.strtotime('1st January 1970 01.00AM'); 
//This gives me 0

PS 我没有在我的 PHP 文件中设置任何时区,或者我什至没有修改我的 .ini 文件(新安装的 XAMPP)

更新:时区:欧洲/柏林

4

4 回答 4

8

这很可能是由于您当地的时区
的输出是什么

var_dump(date_default_timezone_get());

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

echo " mktime: ", mktime(), "\n";
echo " gmmktime: ", gmmktime(), "\n";
于 2013-04-03T08:07:43.470 回答
6

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

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

date_default_timezone_set('UTC');
于 2013-04-03T08:07:06.483 回答
5

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

date_default_timezone_set('UTC');
于 2013-04-03T08:10:12.220 回答
1

添加此设置时区“欧洲/柏林”

 date_default_timezone_set('Europe/Berlin');
于 2013-04-03T08:15:55.190 回答