1

私は、ローカル TZ でのイベントの日付を表示する任務を負っています。表す日付は未来であり、ローカルまたはイベント TZ で DST の変更が発生する可能性があります。

私の上司は、関連する TZ の 1 つの DST が変更された場合、金曜日の午後 8 時は正確ではないため、イベント時間をローカルに単純に変換するだけでは十分ではないと言います。

私は、これが出力情報を必要とするための出発点ではないことをほぼ確信していますが、彼はそれを望んでいると主張しています.

これらの計算を行うための良い情報源と簡単な方法はありますか? これはウェブサイトの日付用であり、かなりの数のページでこれを行う必要がある可能性があることに注意してください...

4

1 に答える 1

0
  1. ユーザーからローカル タイム ゾーンを収集します。推測するのではなく、明示的にゾーンを選択してもらいたい場合があります。非常に非標準的な DST の使用が行われている地域がいくつかあります。
  2. すべての日時を UTC で保存しますそれらの最後のすべて。
  3. データベースがタイムゾーンを認識しないために日時フィールドを操作しないか、タイムゾーンを認識し、明示的に日時のストレージを UTC に設定していることを確認してください。たとえば、MySQL のタイムゾーン サポートはひどいものですが、PostgreSQL では日時自体でタイムゾーンを定義できます。おしゃれです。
  4. PHP のDateTimeクラスを使用して日時を表します。
  5. DateTime のメソッドに渡された DateTimeZone を使用setTimezoneて、必要に応じて UTC 時刻をローカル時刻に単純に変更します。
  6. ローカルで正しい DateTime をユーザーに表示します。
  7. ???
  8. 利益!
于 2012-12-08T07:19:33.510 に答える