留意すべきことはいくつかあります。
ストアUTC時間内のすべてのイベントの日付時刻
はい、何もこの動きまわるはありません。
すべてのタイムゾーンをご覧ください...システム内のすべてのユーザーの
...。次の検出スクリプト(http://site.pageloom.com/automatic-timezone-detection-with-javascript)を使用できます。たとえば、 "America/Phoenix"などのタイムゾーンキーを渡します。
あなたのケースでは、ユーザーがタイムゾーンを切り替える可能性があるため、イベントと共にタイムゾーンを保存する必要がありますが、イベントは常に特定のイベントで発生します。 (なんてこった)
あなたの表示機構
を選択して、JavaScriptを使用して自分のイベントの日付をローカライズしたい場合は、そのために気の利いたライブラリが(前のスクリプトに付属のキーを使用できる)もそこです。ここに:https://github.com/mde/timezone-js。
var dt = new timezoneJS.Date(UTC_TIMESTAMP, 'America/New_York');
または
例えばUTC_TIMESTAMPは
1193855400000
可能性が
var dt = new timezoneJS.Date(2006, 9, 29, 1, 59, 'America/Los_Angeles');
:あなたはたとえばこれを行うことができ、そのライブラリと
。 America/New_York
は、イベントが発生したときに検出したタイムゾーンです。
このオブジェクトは、通常のJavaScript Date
オブジェクトとして動作します。しかし、指定したタイムゾーン(DSTを含む)に自動的に「訂正」されます。
場合は、ページを提供する前に、バックエンドのすべての修正を行うことができます。私はあなたがそこで使っているプログラミング言語がわからないので、すぐにあなたにアドバイスを与えることはできません。しかし、基本的には同じタイムゾーンを知っていれば同じロジックになり、UTCのdatetime - > datetimeをローカライズできます。すべてのプログラミング言語にはライブラリがあります。
1日を追加するには、実際にタイムゾーンが必要です。すべての日が24時間であるわけではありません。時間帯、夏時間のルール、問題の特定の日付によっては、暦日の長さは23時間、24時間、または25時間(または歴史的な時間帯について話す場合は他の奇妙な値)になります。したがって、常に86400000を追加することは簡単な問題ではありません。 –
多分問題は不明です。それが朝の2:30の場合、タイムゾーンが前に移動する前の日に、「1日を追加する」とはどういう意味ですか? – Malvolio
正確に。あなたが「24時間を追加する」という意味なら、あなたは大丈夫です。しかし、ほとんどの人は、これらの移行を目に見えないものと考えています。なぜなら、通常は発生時に眠っているからです。だから、仮釈放者に何時に午前2時30分から1日になるかを尋ねると、彼らは午前2時半を期待しています - 可能な午前1時30分または午前3時30分。たとえそのカレンダーが曖昧であっても、カレンダーの観点から考える傾向があります。 :) –