time()未返回夏令时值


time() not returning daylight savings value

设置以下内容后,我希望time()返回英国夏令时的epoch时间,但我得到的却是UTC/GMT。

date_default_timezone_set("Europe/London");

我将存储在数据库中的值根据BST进行了调整,并需要比较time()返回的值。由于存在时差,系统目前无法按预期工作。time()函数需要返回BST时间,或者我需要一种方法来检测伦敦是否在BST中,以便在time()的结果中添加3600。任何一种解决方案都是受欢迎的。

date_default_timezone_set("Europe/London");
// Wordpress - Getting a value from the DB
$min_deadline = get_post_meta($id,'wdm_deadline_min',true);
$min_signup_check = false;
if (!empty($min_deadline) && time() >= strtotime($min_deadline))
    $min_signup_check = true;

在下面找到了这两个方法,现在我使用getoffset返回GMT和BST之间的差异(如果有的话)。

function getOffset($tzId, $time = null) {
    if($time == null){
        $time = gmdate('U');
    }
    $tz = new DateTimeZone($tzId);
    $transition = $tz->getTransitions($time);
    return $transition[0]['offset'];
}
function getDST($tzId, $time = null) {
    if($time == null){
        $time = gmdate('U');
    }
    $tz = new DateTimeZone($tzId);
    $transition = $tz->getTransitions($time);
    return $transition[0]['isdst'];
}