init.phpでdefine('UTIME', time() - LOCALZONE)とUTIMEを定義し、各所で使っているようですが、time()は元々、(同一時点においては)サーバが設置されている場所によらず同一の値でありこの補正は不要です。
UTIMEをベースにデータ処理を行っている個所全般に見直す必要がありそうです。
PukiWiki Plus!のPlugin/minicalendarの2005-5-29のコメントあたりが発端です。
time: <?php echo time();?> date: <?php echo date('r');?>を作って、
TZ=Asia/Tokyo php -f foo.php; TZ=Europe/Paris php -f foo.phpとか実行しました。結果は以下のとおり。
time: 1117637288 date: Wed, 01 Jun 2005 23:48:08 +0900 time: 1117637288 date: Wed, 01 Jun 2005 16:48:08 +0200timeの値は同じですがdateの値が変化してるので、PHPはローカルタイムゾーンを東京とパリだと認識していると思います。
指定された引数 timestamp を、与えられた フォーマット文字列によりフォーマットし、日付文字列を返します。 タイムスタンプが与えられない場合は、現在のローカル時刻が使われま す。つまり、timestampはオプションであり そのデフォルト値はtime()の値です。
と書いてありますが、time()の値はローカルとかそういう概念は関係なく、1970/1/1 00:00:00 GMT(これはある特定の瞬間)からの秒数なので、サーバの設置場所や設定によらず同一時点では同一値となります(UNIX/Linux の time()と同じ)。