设置以下内容后,我希望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'];
}