複数のタイム ゾーンにわたる定期的なイベントのタイム ゾーンに関する考慮事項
複数のタイム ゾーンにわたる定期的なイベントを保存するには、夏時間 (DST) を慎重に考慮する必要があります。 )。この課題に対処する方法は次のとおりです:
直接アプローチ
-
「dst」フラグを保存します: 開始日/終了日が指定されているかどうかを示します。 DST 中に入力されました。
-
次の方法で時刻を調整します時間: DST 移行を考慮して、必要に応じて時刻を 1 時間単位で変更します。
代替アプローチ
-
ストア ローカル時間とタイムゾーン: 「08:00」や「08:00」などのイベントの現地時間とタイムゾーンを記録します。 "America/New_York".
-
相当する UTC を計算します: 将来のタイム ゾーンの更新を考慮して、現地の日付/時刻を UTC に変換します。
-
将来の UTC イベントを保存します: 将来のイベントのリストを UTC に投影して表示します
繰り返しパターンに関する警告
繰り返しイベントの場合、開始時間が DST フォールバック移行中に発生する場合、イベントが 2 日に発生するかどうかを決定します。最初、二番目、または両方のインスタンス。
複雑さと考慮事項
タイムゾーンをまたいで将来のイベントをスケジュールするのは複雑です。次の点を考慮してください:
-
タイム ゾーンの更新: タイム ゾーン データベースの更新をサブスクライブし、それに応じて UTC イベント時間を再計算します。
-
現地時間での UTC スケジュール: 可能ではありますが、タイムゾーンが変更されたり、イベントをユーザーのローカルに合わせて調整する必要がある場合には、問題が発生する可能性があります。 time.
-
Floating Times: タイムゾーンを越えてユーザーを追跡する必要があるイベントを適切に処理します。
以上が夏時間を正確に考慮しながら、複数のタイムゾーンにわたって定期的なイベントをスケジュールするにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。