どのブラウザーでも同じ時間を使用して、国際的にサービスを予約するためのベスト プラクティス/ソリューションを探しています。論理がよくわかりません(そして、ここも掘り下げました)。
使用事例
- ブリュッセルの予約をしているユーザーが、シンガポールを拠点とするヘアカット サービスを利用しているとします。彼は 1 週間後にシンガポールに飛びます。彼はブラウザの日時コントロールで 14:00 を選択します。ただし、ブラウザは +1 UTC に設定されています。
- SG ヘアカット スタイリストは、アジェンダの時間を 14:00 SG 時間として表示する必要があります。
- 理髪店のオーナーはドバイを旅行中で、ブラウザーが一時的に +4 UTC に設定されているにもかかわらず、議題を SG タイムゾーンのまま表示したいと考えています。
基本的に、すべての役割は、現在の TZ に関係なく「理髪店」の現地時間を確認し、「店」の時間にサーバーに報告する必要があります。
サーバー時間は UTC、タイムスタンプは UNIX 秒です。「ショップ」TZは知られています。
問題は、ブラウザの現地時間を内部的に利用するいくつかのjqueryプラグイン(datetimepickerとcalendar)を使用していることです。分析と修正が必要な数千行のコードがあり、サポートが少なくなります-(Bruxelles | any other TZ)のブラウザ各 "new Date()" は、ローカル ブラウザー時間を取得します。かなり狭い場所もあります (これらの架空の「理髪店」は世界中にあり、マップから選択されるため、ターゲット TZ は動的です)。
そのための一般的な慣行は何ですか?
しやすいですか
- タイムゾーンを気にしない js で「動的な」基準日をモックし、プラグインにフィードする
- クライアントへのロード時にサーバー データをローカル TZ に変換する
- 他の解決策を適用する
どうもありがとう
PS私はベストプラクティスを読みました-しかし、私が言ったように、私は特定のプラグインを使用することに縛られています.
解決策:
異なる「理髪店」の本を時間的に比較する必要がないため、これらの日時の相対値は必要ないことに気付きました(各「店」の緯度/経度があれば、必要に応じて相対時間を再計算できます)。
基本的に、タイムゾーンに関係なく絶対UTC 値のみが必要です。この場合、UNIX 時間 (1970 UTC からの秒数) が完全に適合します。
クライアントでユーザーのブラウザー オフセットによって時刻を修正し、それをバックエンドに送信して、そこでターゲット オフセットで修正する代わりに、クライアント側とサーバー/データベース側の両方で、システム全体を明確な UTC 日付で実行し、保存および表示します。ローカル ブラウザのクロックにバインドされ、どこにも保存されない日付/時刻フィルタを除いて、すべてのロールに適用されます。