米国カリフォルニア州のユーザーが日付、時刻、タイムゾーンを選択するとします。
ワールドワイド ビール マラソンは2013 年8 月 15 日午前 10:00、UTC-08:00 に始まります
中央ヨーロッパの別のユーザーが、この日付と時刻が表示されているページを開きます。彼は時間の計算をしたくありません (すでにビールをほとんど飲んでいません)。彼は次の日付と時刻を確認したいだけです。
2013/8/15 19:00
ブラウザがカリフォルニアのユーザーによって入力された日付と時刻の情報を受け取ったとします。
javascriptで、外部 Web サービスを使用せずに正しい変換を行う方法はありますか? つまり、夏時間であるため、午前 10 時 UTC-08:00 が実際には午前 10 時 UTC-07:00 であることを検出します。
最初の認識が間違っていたのかもしれませんが、UTC-08:00 (PST) と UTC-07:00 (PDT) のどちらを選ぶべきか、入力ユーザーに考えさせたくありません。カリフォルニア州の標準時間帯は PST であるため、夏時間に PDT で考えることに切り替える人はいないのではないでしょうか。それとも彼らですか?
中央ヨーロッパでは、標準日付は UTC+01:00、夏時間は UTC+02:00 です。そのため、CA とヨーロッパの差は 9 時間です。ただし、1 年に 2 回、いずれかの地域で標準モードと夏時間モードが切り替わる場合を除きます。
アップデート:
コメントをもう少し考えて読んだ後、私が理想的に必要とするのはこれです:
var utcOffset = f('2013-08-15T10:00', 'America/Los_Angeles');
// utcOffset == "-07:00"
var utcOffset = f('2013-11-15T10:00', 'America/Los_Angeles');
// utcOffset == "-08:00"
これまでのところ、Guido Preite によって提案されたmoment.js/timezone pluginがこれを行うことができるようです (多かれ少なかれ)。
ブラウザ API を使用する他の方法はありますか?