我想知道日期是否在夏令时。
所以我这样做:
echo date('I', strtotime('2017-03-23')); // outputs 0
echo date('I', strtotime('2017-03-29')); // outputs 0
我希望两个输入有不同的结果,因为英国的开关是 2017 年 3 月 26 日,但在这两种情况下输出都是 0。
我已经检查过,时区看起来正确:
echo date_default_timezone_get(); // outputs UTC
正如您在此答案中看到的,UTC
没有夏令时,则需要将时区设置为 Europe/London
:
date_default_timezone_set('Europe/London');
echo date('I', strtotime('2017-03-23')); // echoes 0
echo date('I', strtotime('2017-03-29')); // echoes 1
date_default_timezone_set('UTC');
echo date('I', strtotime('2017-03-23')); // echoes 0
echo date('I', strtotime('2017-03-29')); // echoes 0