我正在使用getdate函数,我打算用它将时间间隔(以秒为单位)解析为天、分钟、小时等。然而,我很惊讶getdate(0)['hours']
是1。这是怎么回事?
FWIW,我得到的完整输出是:
Array
(
[seconds] => 0
[minutes] => 0
[hours] => 1
[mday] => 1
[wday] => 4
[mon] => 1
[year] => 1970
[yday] => 0
[weekday] => Thursday
[month] => January
[0] => 0
)
January 1, 1970, 00:00 GMT
在BST(英国标准时间)为01:00
。您的服务器可能已经设置了该时区。
请参阅此WolframAlpha查询。
使用date_default_timezone_set()
更改时区,或者使用完全具有时区意识的新DateTime类。
我猜你住在英国。
PHP被配置为使用您所在国家的本地时区。这将导致夏令时的时间为格林尼治标准时间1:00+1小时。
有两种可能的解决方案:
- 从您使用的时间戳开始减去一小时
- 将脚本配置为使用GMT。请使用前面提到的函数@pekka
我建议采取第一种解决办法;您的脚本可能需要漂亮地打印各个时间,以及您希望转换为本地时区的时间间隔。