2017-02-06 8 views
0

私のサイトでは、現在のタイムスタンプをサーバに返すajax関数を使って現在の時刻を取得してから、日付オブジェクトを作成しています。同じタイムスタンプの全員に同じ日付オブジェクトを作成する

$.post(flipCountdownObj.ajax_url, data, function(response) { 

     var currentTime = new Date(parseInt(response) * 1000); 
     alert("Server says the time is " + currentTime.toLocaleTimeString()); 

     // code to create my countdown here... 

} 

ロジックは、その日付をさまざまな他の日付と比較して、カウントダウンとイベントステータスを提供します。

私の問題は誰もが違う時が来ていることです。

GMTです。サーバーはESTにあります。私にとっては正しい時間だと言われますが、ESTの人々はそれが4時間ということを言っています。

タイムスタンプがすべての人に同じである必要があるので、なぜこれが起こっているのかわかりません。

私は、UTC時間の設定についての記事を見ましたが、私が何をするつもりであるかは正確には分かりません。誰かが私が間違っていることにいくつかの光を当てることができますか?

+0

私は私がPHPでUTCを計算することができるように、ブラウザのタイムゾーンを把握し、クッキーにこの違いを追加するJS日付を使用し、しばらく前の道を見つけました。 http://stackoverflow.com/questions/6939685/get-client-time-zone-from-browserを参照してください。しかし、JSだけでこれを行うことができます。 –

答えて

0

これは動作するようです:

var serverOffset = -300*60000; // -5 hrs is 300 minutes 

    var usersDate = new Date(); 
    var userOffset = usersDate.getTimezoneOffset()* 60000; 

    var currentTime = new Date((parseInt(response) * 1000) + userOffset + serverOffset); 
関連する問題