2010-11-26 18 views
1

私はこのジレンマをJavaScriptで持っています。私はクライアントのローカルタイムゾーンからNYC(EST)タイムゾーンに日付のリストを変換する必要があります。私は以下の関数を使用しています:夏時間とJavaScriptタイムゾーンの変換

Date.prototype.toNycTime = function() { 

    var localTime = this.getTime(); 
    var localOffset = this.getTimezoneOffset() * 60000; 
    var utc = localTime + localOffset; 
    this.setTime(utc - 3600000 * 5); 

    return this; 
}; 

正常に動作します。 1つの問題は、米国で夏時間の切り替えがあるたびにUTCオフセットを調整する必要があることです。そして、それは次のスイッチの前にある任意の日付でOKです(最も早い来るのは2011年3月13日です)。しかし、スイッチ後の日付には機能しません。私は、私のために変換を行うブラウザでJS関数を組み込むことについて知らない。

私はいくつかのユニバーサル変換を行うことができますそこに良いライブラリはありますか?または誰でも上のコードのヒントを提供できますか?私は、変換のための日付/時刻にプログラミングを避け、すべての時間を調べることを試みています。

答えて

-3

http://www.datejs.com/

DatejsオープンソースのJavaScript日付ライブラリです。

総合的、シンプル、ステルスと速いです。 Datejsはすべての試行に合格し、ストライキの準備が整いました。 Datejsは文字列を解析するだけではなく、2つできれいにスライスします。

+3

夏時間には対応していません。 –

+0

DSTがJavascriptの問題であると思われます。迅速なGoogle検索は、いくつかの実行可能な選択肢を示しているが、彼らはかなり長く機能しています。 – drudge

0

私はこの正確な問題を扱っています...世界各地の企業ユーザーですが、「コーポレートタイム」は夏時間を含むPST/PDTです。 私は実際に

PST8PDT,M3.2.0/2,M11.1.0/2 

で始まるPacificTimeのためのPOSIXタイムゾーンの文字列を解析し、時にクロックより前後のために解析可能な日付文字列にそれらを再フォーマット:私はそれに近づいてきたどのように

。 時間オフセットTZ文字列に埋め込まれたを使用して、私は前後の時間のタイムスタンプをエポックと企業の時間が現在DSTであれば計算する場合は、その後に使用するために変換します。

これは、ローカルの「エポック」時間(すでにUTC)をコンセプトローカルタイム(実際にはUTCタイムに変換されていますが、ローカルに見える)に変換するために使用できるUTCからのオフセットをもたらします。

私は 'flot'はすべてをUTCで行う必要があります

関連する問題