このような「手動」の日付計算を行うべきではありません.PHPにはそのための非常に優れた関数があります. タイムゾーンの計算にはDateTimeZoneを使用します。
解決
何を達成したいのか完全にはわかりませんが、次のようにタイムゾーンを変換できます。
$fromTz = new DateTimeZone('GMT');
$toTz = new DateTimeZone('Pacific/Midway');
$dt = new DateTime('now', $fromTz);
$dt->setTimezone($toTz);
echo $dt->format('Y/m/j H:i:s');
バックグラウンド
タイムゾーンの計算は、特にお気づきのように、夏時間 (DST) と組み合わせると非常に複雑になる可能性があります。また、数年ごとに国のタイムゾーンなどが変更されます。地球の自転と正確に一致するように UTC にも適用される時刻修正についても忘れてはなりません。
PHP が使用するタイムゾーン データには、これらすべての変更の記録があり、タイムゾーンの計算を正確に適用できます。これは、独自のコードを作成するときに期待できる以上のものです。
タイムスタンプを使用して時間計算を行うべきではない理由の詳細については、時間処理に関する私のブログ投稿をお読みください。