我想知道日期是否在夏令时。
所以我这样做:
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
答案 0 :(得分:3)
正如您在this answer中看到的,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