PHP4でタイムゾーンのオフセットを取得したい
PHP5では DateTimeZone クラスがあるので簡単にオフセットを得られるが、PHP4では若干手間がかかる上に指定のタイムゾーンは得られない。
現在のタイムゾーンでのオフセットを得る場合以下の関数を使う。
function getTimeZoneOffset() { $tz = localtime(0,true); $offset = $tz['tm_hour'] * 3600 + $tz['tm_min'] * 60; return $offset; }
タイムスタンプに0を指定することで、現在使用しているタイムゾーンの基準時が得られる。この基準時と1970年1月1日の差がオフセットになる。
使い方
echo getTimeZoneOffset();
//実行結果
32400
この32400は、3600*9,つまり9時間を表している。JSTはGMT+9:00なので正しいオフセット時間が取得できたことになる。