2017-06-30 11 views
-1

私はコードを見つけましたが、私はタイムゾーンを追加することを知らないです。私はデンマーク/コペンハーゲンのような他の国のタイムゾーンからタイマーを検出したい。ありがとうございました。これは私のコードです。私のタイマーのタイムゾーンjavascript

<script type="text/javascript"> 
 
ElapsedTimeLogger = function(dateElementId, elapsedElementId, hiden, interval) { 
 
    var container = $(elapsedElementId); 
 
    var time = parseDate($(dateElementId).val()); 
 
    var interval = interval; 
 
    var timer; 
 

 
    function parseDate(dateString) { 
 
     var date = new Date(dateString); 
 
     return date.getTime(); 
 
    } 
 

 
    function update() { 
 
    var systemTime = new Date().getTime(); 
 
    elapsedTime = systemTime - time; 
 
    container.html(prettyPrintTime(Math.floor(elapsedTime/1000))); 
 
$(hiden).val(prettyPrintTime(Math.floor(elapsedTime/1000))); 
 
} 
 

 
    function prettyPrintTime(numSeconds) { 
 
     var hours = Math.floor(numSeconds/3600); 
 
     var minutes = Math.floor((numSeconds - (hours * 3600))/60); 
 
     var seconds = numSeconds - (hours * 3600) - (minutes * 60); 
 

 
     if (hours < 10) hours = "0" + hours; 
 
     if (minutes < 10) minutes = "0" + minutes; 
 
     if (seconds < 10) seconds = "0" + seconds; 
 
     var time = hours + ":" + minutes + ":" + seconds; 
 

 
     return time; 
 
    } 
 

 
    this.start = function() { 
 

 
     timer = setInterval(function() {update()}, interval * 1000); 
 
    } 
 

 
    this.stop = function() { 
 
     clearTimeout(timer); 
 
    } 
 
} 
 
$(document).ready(function() { 
 

 
    var timeLogger = new ElapsedTimeLogger("#date", "#elapsed","#stoppedid", 1); 
 
    timeLogger.start(); 
 

 
    $("#confirm").click(function() { //Stop timer upon clicking the Confirm Button 
 
     timeLogger.stop(); 
 

 
    }); 
 

 
}); 
 

 
    </script>

ありがとうございました。私はjavascriptを知らない。私はPHPだけ知っている。私はコードを実行する前に

を入力しようとしました。私はすでにヨーロッパ/コペンハーゲンから時間を節約しています。タイマーが動作しているとき。それは6時00分01秒と言っている..しかし、私はこの0:00:01のように実行してカウントしたい。私の考えは私の国ではヨーロッパと時間から6時間です。私は自分の国ではなくヨーロッパから時間を過ごしたい。なぜなら私はPHPを使ってヨーロッパから時間を節約するからです。時間を節約するためのコードを参照してください。

date_default_timezone_set("Europe/Copenhagen"); 

しかし、仕事はありません。私は解決策を見つけませんでした

+0

それはあなたが何を求めている不明です。 「タイムゾーンを追加する」と「タイムゾーンからタイマーを検出する」とはどういう意味ですか?具体的にしてください。 –

+0

申し訳ありませんが..私は何を意味しています。私はデンマークから時間を使って時間を節約する。ときに私は時間をクエリし、時間を実行するために開始します。それは6時00分と言います。私は期待していますが、0時01分になるでしょう。私の考えでは、デンマークからの時間と私の国からの時間は6時間の間です。なぜ私はデンマーク時間からタイマーを動かしたいのですか?どこで時間を節約しますか?あなたが理解して欲しいです。私の英語に申し訳ありません –

+0

明確にするには、特定のタイムゾーンの入力日時に基づいてカウントダウンタイマーを求めていますか?より簡単なアプローチは、入力をサーバー上でUTCに変換し、代わりにUTC時間にカウントダウンすることだと考えましたか? –

答えて

-1
function getClientTimeZone() { 
    var offset = new Date().getTimezoneOffset(), 
    o = Math.abs(offset); 
    return (offset < 0 ? "+" : "-") + ("00" + Math.floor(o/60)).slice(-2) + ":" + ("00" + (o % 60)).slice(-2); 
} 

// Display Output 
alert(getClientTimeZone()); 
+0

https://jsfiddle.net/znzgzx59/2/ – Help

+0

これを自分のコードに追加するにはどうすればよいですか?私はキヌーをしない。私はjavascriptを知らないので。 –

+1

[編集]リンクを使用して、このコードの仕組みを説明してください。将来の読者の説明に役立つように、コードを記述するだけではありません。 [回答]も参照してください。 –

0

このコードを分析すると、コードが何をするかを知るために必要なHTMLを書き直しました。単にhh:mm:ssという形式のカウンタを作成し、画面に表示します。このカウンタは、通知された日付から経過した時間を示します。

あなたのタイマーに反映するためにユーザーのタイムゾーンを追加するには、prettyPrintTime(numSeconds)関数内の秒を再計算してから、時、分、秒を取得する必要があります。

function prettyPrintTime(numSeconds) { 
      var tzOffset = new Date().getTimezoneOffset(); // get the timezone in minutes 
      tzOffset = tzOffset * 60; // convert minutes to seconds 
      numSeconds -= tzOffset;  // recalculate the time using timezone 

      var hours = Math.floor(numSeconds/3600); 
      var minutes = Math.floor((numSeconds - (hours * 3600))/60); 
      var seconds = numSeconds - (hours * 3600) - (minutes * 60); 

      if (hours < 10) hours = "0" + hours; 
      if (minutes < 10) minutes = "0" + minutes; 
      if (seconds < 10) seconds = "0" + seconds; 
      var time = hours + ":" + minutes + ":" + seconds; 

      return time; 
     } 

作業コードを見てみましょう: https://jsfiddle.net/4c6xdcpr/

関連する問題