time()不返回夏令时值

时间:2016-08-02 11:59:19

标签: php wordpress timezone

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

date_default_timezone_set("Europe/London");

我将数据库存储在为BST调整的数据库中,需要比较time()返回的值。由于存在小时差异,系统目前无法正常工作。 time()函数需要返回BST时间,或者我需要一种方法来检测London是否在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;

1 个答案:

答案 0 :(得分:0)

在下面找到这两种方法,现在使用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'];
}