基本的に、私の Web サイトは世界規模であり、ユーザーのタイム ゾーンを検出して正確な時刻を表示できる必要があります。私はこれまで完璧にうまく機能していたこの本当にきちんとしたスクリプトを持っています。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 がヨーロッパ/パリであると判断することです。日付とタイムゾーンがとても苦手です。どうしても助けが必要です。