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