我已经习惯了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
Run Code Online (Sandbox Code Playgroud)
PS我没有在我的PHP文件中设置任何时区,或者我甚至没有修改我的.ini文件(Fresh Installed XAMPP)
更新:时区:欧洲/柏林
这很可能是由于您当地的时区.
什么是输出
var_dump(date_default_timezone_get());
Run Code Online (Sandbox Code Playgroud)
在那台机器上?
您还可以检查mktime和gmmktime之间的区别
echo " mktime: ", mktime(), "\n";
echo " gmmktime: ", gmmktime(), "\n";
Run Code Online (Sandbox Code Playgroud)
您的时区必须设置为UTC + 1.您的时区中的午夜发生在UTC午夜前一小时,这解释了-3600秒的偏移.
您可以将时区设置为UTC以获得预期结果:
date_default_timezone_set('UTC');
Run Code Online (Sandbox Code Playgroud)
您需要检查您的时区设置。或者如果将 default_time_zone 设置为 UTC,您将得到所需的结果。
date_default_timezone_set('UTC');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
963 次 |
最近记录: |