我使用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
p。我没有在PHP文件中设置任何时区,甚至没有修改了我的。ini文件(新安装的XAMPP)
更新:时区:Europe/Berlin
很可能是因为你所在的时区。
var_dump(date_default_timezone_get());
在那台机器上?
您还可以检查mktime和gmmktime
echo " mktime: ", mktime(), "'n";
echo " gmmktime: ", gmmktime(), "'n";
您的时区必须设置为UTC+1。您所在时区的午夜发生在UTC午夜前一小时,这解释了-3600秒的偏移量。
您可以将时区设置为UTC以获得预期的结果:
date_default_timezone_set('UTC');
您需要检查您的时区设置。或者如果你设置default_time_zone为UTC,你会得到想要的结果。
date_default_timezone_set('UTC');
将此添加到设置时区'Europe/Berlin'
date_default_timezone_set('Europe/Berlin');