基本上我的网站是全球性的,我需要能够检测用户的时区并显示准确的时间。我有这个非常简洁的脚本,它曾经完美地工作到现在。它需要一个时区偏移量,我使用 javascript 获取并通过 cookie 传递。
if(!empty($_COOKIE['tz']) && $_COOKIE['tz']>=-12 && $_COOKIE['tz']<=13){
$offset = $_COOKIE['tz'];
$tz = timezone_name_from_abbr(null, $offset * 3600, true);
if($tz === false) $tz = timezone_name_from_abbr(null, $offset * 3600, false);
date_default_timezone_set($tz);
}else{
date_default_timezone_set('UTC');
}
问题是目前我正在测试的时区是欧洲/赫尔辛基,它是 UTC+2(没有夏令时),但由于某种原因timezone_name_from_abbr()
决定 2*3600 是欧洲/巴黎。我的日期和时区真的很糟糕,我非常需要帮助,拜托!