2012-01-30 11 views
7

私は、ユーザが与えられたデータと時間のイベントを設定できる動的なJavaScriptのカレンダーを持つWebアプリケーションを持っています。私は通知をユーザーにプッシュする必要があるので、入力した日付時刻とタイムゾーンを東部標準時間に変換して、通知が正しい時刻に送信されるようにする必要があります。日時をユーザのタイムゾーンからJavaScriptのESTに変換するには

私はJavaScriptでこれを行いたいので、データ時間値がPHPに到達すると、データベースに追加される前に正しい形式になります。

要約すると、ユーザーのデータタイムを完全なUTCの日付としてキャプチャして得られるJavaScriptのデータタイムゾーンとタイムゾーンを、サーバーのタイムゾーン(EST-New York)に変換する必要があります。

この件に関するお手伝いやご指摘をいただければ幸いです。 感謝:)

答えて

15

P1があなたが(PHP経由で)それをレンダリングしている間、私はページへのオフセットESTタイムゾーンを引く

function convertToServerTimeZone(){ 

    //EST 
    offset = -5.0 

    clientDate = new Date(); 
    utc = clientDate.getTime() + (clientDate.getTimezoneOffset() * 60000); 

    serverDate = new Date(utc + (3600000*offset)); 

    alert (serverDate.toLocaleString()); 


} 
+0

これは機能します!ページにdatetimeを表示するために、時刻をユーザーのタイムゾーンに戻すにはどうすればよいですか? –

+0

これはすべてオフセットされています。ユーザーのタイムゾーンオフセットを使用して、dateオブジェクトで使用可能な関数を使用して、ユーザーロケール固有の形式でレンダリングすることができます。 – user47900

+0

コード例お願い.....ありがとうございました! :) –

0

このスクリプトをチェックして、クライアント上のUTC時刻を取得し、オフセットそうでなければ、あなたのサーバーがタイムゾーンを移動すると、あなたのページは突然間違った時間を報告するでしょう。

私はちょうどかかわらず、最近、これをしなかったし、これを処理する最も簡単な方法は、実際にMySQLを(私はそれがあなたのDBだと仮定しています)を使用することであることを発見し、ちょうどあなたが入力している間、それはあなたのためにタイムゾーンを変換してみましょう日付スタンプ。これがあまりにも厄介で、dbがやっている作業を絶対に減らそうとしているのでなければ、私はJSで手作業によるTZ変換をしようとしているのではなく、その道を行くだろう。

関連する問題