PHPが提供するDateTimeオブジェクトを使用することはおそらく非常に良い考えです。タイムゾーンも処理することを約束します。
// Current date/time in the specified time zone.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
(ドキュメントページhttp://de3.php.net/manual/en/datetime.construct.phpからのコード)
選択したタイムゾーンに関する情報を取得するために、DateTimeZoneは、次のような方法でタイムゾーンデータベース情報へのアクセスを提供しますgetTransitions()
(既知の時間ごとのオフセットを含む配列を取得します。http://de3.php.netの例を参照してください)。 /manual/en/datetimezone.gettransitions.php)、およびgetOffset()
(オフセットが要求される時間を必要とします。http://de3.php.net/manual/en/datetimezone.getoffset.phpを参照してください)。
つまり、基本的に「秒単位のオフセット」などはありません。この値は、a)要求する時間、夏時間などが時間の経過とともに影響するため、b)要求する時間によって変化するためです。タイムゾーンの変更は、変更できない自然法ではなく、地域の法律の影響を受けるためです。
あなたは必要に応じて現地時間に変換できる普遍的な時間を保存する正しい方法にいますが、私はそれを自分でやろうとするのではなく、PHPが提供するものを利用することをお勧めします。コーディングにかかる時間が短縮されます。