在PHP中检测BST

Col*_*ins 1 php date

我正在用php建立一个预订系统,为人们提供户外活动的会话时间。

在夏季,由于夏令时,一天结束时会有一个额外的时段,晚上会有一个额外的小时。

Year    Clocks go forward   Clocks go back
2014    30 March            26 October
2015    29 March            25 October
2016    27 March            30 October
2017    27 March            30 October
2018    25 March            28 October
Run Code Online (Sandbox Code Playgroud)

我正在使用这个...

$todaysDate = strtotime(date("Y-m-d"));
$bstBegin = strtotime("2015-03-29");
$bstEnd = strtotime("2015-10-25");

if($todaysDate > $bstBegin && $todaysDate > $bstEnd)
{
   echo "<option value="evening">Evening Session</option>";
}
Run Code Online (Sandbox Code Playgroud)

我只需要在这些日期之间的选择列表中显示此额外选项。这是我每年需要手动设置的东西,还是有一个PHP date变量可以知道时钟的变化日期?

Mar*_*ker 5

$today = strtotime(date("Y-m-d"));
if (date('I', $today)) {
    echo "We're in BST!";
} else {
    echo "We're not in BST!";
}
Run Code Online (Sandbox Code Playgroud)

或使用等效的DateTime对象,该对象将全局维护所有过渡日期的详细信息