PHP で、タイムゾーン (timezone) を使って時差を修正した時刻を得る方法

PHP 5.1.1 or higher からは、
<?php

bool date_default_timezone_set
( string timezone_identifier )

?>
という関数が使えるらしいが、PHP 4.4.2 or lower などでは、
<?php

$TZ
= '-8' // PST

// yyyy/mm/dd hh:nn フォーマットにする
$date = gmdate('Y/m/d H:i', time() + 3600 * ($TZ + date('I')));

print
$date;

?>
または、
<?php

$TZ
= '-8' // PST

// 単なる時刻シリアル値
$NOW = time() - date('Z') + 3600 * ($TZ * date('I'));

print
$NOW;

?>
とするのだろうか? イマイチ自信がないが、上の式でとりあえず夏時間(Daylight Saving Time)も考慮しているからとりあえず良しとしよう(良い方法があったらどなたか教えてください)。
トラックバック URL: https://perltips.twinkle.cc/trackback/123