4

だから、私は以下(秒のカウントダウン)を順調に持っています。しかし!カウントダウンとは別に、時間と分も追加しようとしています。理想的には、同じ構造を維持し、純粋な JS を使用するだけです。出力を次のようにしたいと思います。

このセールの残り時間は X 時間 X 分 X 秒です!

var count=30;

    var counter=setInterval(timer, 1000); //1000 will  run it every 1 second

    function timer()
    {
      count=count-1;
      if (count <= 0)
      {
         clearInterval(counter);
         return;
      }

     document.getElementById("timer").innerHTML=count + " secs"; // watch for spelling
    }

解決策がjQueryまたは別のライブラリで書き直す必要がある場合。それはいいです。ただ好ましくない。どんな助けにも乾杯と挨拶。

4

3 に答える 3

18

このようなもの:

var count = 30;
var counter = setInterval(timer, 1000); //1000 will  run it every 1 second

function timer() {
    count = count - 1;
    if (count == -1) {
        clearInterval(counter);
        return;
    }

    var seconds = count % 60;
    var minutes = Math.floor(count / 60);
    var hours = Math.floor(minutes / 60);
    minutes %= 60;
    hours %= 60;

    document.getElementById("timer").innerHTML = hours + "hours " + minutes + "minutes and" + seconds + " seconds left on this Sale!"; // watch for spelling
}
于 2013-08-15T22:19:12.830 に答える
3
var totalSeconds = 3723; // lets say we have 3723 seconds on the countdown
                         // that's 1 hour, 2 minutes and 3 seconds.

var hours   = Math.floor(totalSeconds / 3600 );
var minutes = Math.floor(totalSeconds % 3600 / 60);
var seconds = totalSeconds % 60;

var result = [hours, minutes, seconds].join(':');
console.log(result);
// 1:2:3
  • hours秒を時間の秒数 (3600) で割ったもので、切り捨てられます。
  • minutes上記の割り算の余りを 1 分間の秒数 (60) で割り、切り捨てたものです。
  • seconds合計秒数を 1 分間の秒数で割った余りです。

その後の各計算でhourは、残りを取得するために計算を使用するmodulus必要があります。そのステップでの合計時間は気にしないため、次のティックに進むだけです。

于 2013-08-15T22:19:12.740 に答える