
ユーザーがデータを DB に送信できるようにするスクリプトがあります。データが送信されると、タイムスタンプも追加されます。ローカル タイム ゾーンは GMT で、サーバー時間は Plesk 11 で設定されていますが、夏時間のため、データが届くと 1 時間遅れます。
これに対処する最善の方法は何でしょうか。タイムゾーンを -1 時間に設定することを考えていましたが、それは少し汚い方法のように思えます。
答え1
最善の方法は (IMHO)、UTC タイムスタンプを書き込むことです。これは常に正しく、アプリケーションとそのライブラリ関数で適切な DST ルールを考慮して、任意のタイムゾーンに変換できます。
答え2
ネイティブ システム時間を使用する (またはクライアント システムの時間を DB サーバーで使用される時間に変換する) ことに何が問題がありますか? すべての主要 OS は、タイムゾーン DST をネイティブに処理します。(DST 仕様が変更された場合でも、関連する OS はそれに対応するようにパッチが適用されます。)
答え3
NTP を使用する場合、選択したタイムゾーンで DST が有効になっていれば、時計は自動的に DST に修正されます。
しかし、私は SvW に同意します。あなたとクライアントが異なるタイムゾーンにいる場合は、UTC の方が適しています。