php mktime for epoch返回-3600,而不是0

PHP*_*PHP 1 php epoch mktime

如果我在PHP中运行以下代码:

echo mktime(0,0,0,1,1,1970);

返回值为-3600,而不是我预期的0.

该服务器是英国的,它目前是9月21日(即BST夏季)(虽然我不希望这会影响纪元时间戳)和每个php.info:"默认时区欧洲/伦敦".

设置夏令时标志也如下,给出:

echo mktime(0,0,0,1,1,1970,0); (即正确的DST标志,0表示1月1日而不是DST/BST)返回-3600

echo mktime(0,0,0,1,1,1970,1); (错误的标志 - 将1月1日设置为DST)返回-7200

echo mktime(0,0,0,1,1,1970,-1); (即未设置DST标志 - 由PHP决定)返回-3600

有谁知道为什么这个时代会被退回-3600,而不是0,拜托?

Ham*_*ite 5

1970年1月1日午夜时分在英国夏令时,格林威治标准时间是午夜1小时.尝试将时区设置为UTC:

date_default_timezone_set('UTC'); // or just change php.ini
Run Code Online (Sandbox Code Playgroud)