現地時間の午前 9 時に、世界中のユーザーにメールを送信する必要があります。サーバーは英国にあります。私にできることは、各ユーザーとサーバーの時間との時差を設定することです。これは、DST が存在しなければ完全に機能します。
これを説明する例を次に示します。
- ジョンはニューヨークで働いており、サーバー (英国) 時間から -5 時間です。
- リチャードはイギリスのロンドンで働いているので、サーバーとの時間差は 0 です。
サーバーが特定の日曜日の午前 2:00 に GMT から GMT +1 (BST) に移行した場合、これは John の現在の時差が -6 時間であることを意味します。
このシナリオは、サーバーの現地時間外のすべてのユーザーを更新することで処理できますが、他のすべてのユーザーの時間を前後に移動した後でも、ユーザーがいつ(時間と日付) 生きているかを検出する方法が必要です。英国外では、現地時間をおそらく DST のものに変更します (または変更しません)。
世界の他の地域が DST に入る/終了する時期を知る/検出する PHP メソッドが必要です。