2016-06-15 7 views
1

私はタイムカウンターが好きで、次のコードを見つけました。なぜ私はクロノメーターの値を増やせませんか?

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>My page</title> 
    <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> 
    <style> 
     a{ 
     margin: 0 10px; 
     color: gray; 
     } 
     .time{ 
      font-size: 50px; 
      margin: 20px; 
      font-family: monospace; 
     } 
    </style> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
    <script> 
     var startValue = 1000; //Number of milliseconds 
     var time = new Date(startValue); 
     var interv; 
     $(function(){ 
      displayTime(); 
      $(".start").on("click", function(){ 
      interv = setInterval(function(){ 
       //time = new Date(time - 1000); 
       time = new Date(time + 1000); 
       displayTime(); 
      }, 1000); 
      }); 
      $(".stop").on("click", function(){ 
       clearInterval(interv); 
       time = new Date(startValue); 
       displayTime(); 
      }); 
      $(".pause").on("click", function(){ 
       clearInterval(interv); 
      }); 
      $(".reset").on("click", function(){ 
       time = new Date(startValue); 
       displayTime(); 
      }); 
     }); 

     function displayTime(){ 
      $(".time").text(fillZeroes(time.getMinutes()) + ":" + fillZeroes(time.getSeconds())); 
     } 

     function fillZeroes(t){ 
      t += ""; 
      return t.length==1? "0" + t : t; 
     } 
    </script> 
</head> 
<body> 
<a href="#" class="start">start</a> 
<a href="#" class="stop">stop</a> 
<a href="#" class="pause">pause</a> 
<a href="#" class="reset">reset</a> 
<div class="time"></div> 
</body> 
</html> 

私は時間をインクリメントするにはどうすればよい:私はtime = new Date(time + 1000);

time = new Date(time - 1000);を変更すると、問題はこれが私のコードであるのですか? ありがとうございました!

+1

私は次の不条理解決策を発見:時間は=新しい日付(時間 - -1000)。 –

+0

Yeap、暗黙の型変換に関することです。ようこそJavaScript;) –

答えて

1

date.getTime()を使用すると、Dateオブジェクトからタイムスタンプを取得できます。あなたの場合:

time = new Date(time.getTime() + 1000); 

デモ:https://plnkr.co/edit/G8yo5l4wHe2yv9S3fjLI?p=preview

+0

パーフェクト!また、giuseppeに感謝 –

+0

あなたは歓迎です、フアン! –

+0

@JuanCamacho '+'はなぜ動作しないのだろうか?必要ならば少し説明を追加することができます。 –

-1

このソリューションを試してみてください問題は、引数として別のDateオブジェクトとDateオブジェクトをインスタンス化しようということです。

var time = new Date(startValue); 
... 
time = new Date(time + 1000); 

次にデバッグのためにconsole.log()を使用してください。

また、カウンタを0ではなく1で開始する理由など、いくつかの問題がありますか?ここで

はすべてを修正する必要があり、迅速作業例です:https://jsfiddle.net/r6k06w40/3/

関連する問題