0

カウントダウン タイマーを作成していますが、1 秒ごとに時間を更新したいと考えています。私はsetIntervalを使用していますが、毎秒ではなく1回しか実行されていないようです。コードの何が問題になっていますか?

var countDown = setInterval(function(){
$('#days').val(daysLeft);
$('#hours').val(hoursLeft);
$('#minutes').val(minLeft);
$('#seconds').val(secLeft);   
},1000);

デモ: http://jsfiddle.net/EnigmaMaster/pyRR8/14/

4

3 に答える 3

4

間隔内の残り時間を再計算する必要があります。そうしないと、引き続き同じ値に設定されます。

于 2012-05-02T16:56:37.277 に答える
2

あなたのコードはcurrentDate変数を更新していませんでした。jsFiddleのコードを更新して、ここに貼り付けます。

var endDay = new Date('May 24, 2012 11:30:00');

var countDown = setInterval(function(){
    var currentDate = new Date();

    var daysdecimal = (endDay - currentDate)/(1000*60*60*24);
    var daysLeft = Math.floor(daysdecimal);
    var hoursdecimal = (daysdecimal - Math.floor(daysdecimal))*24;
    var hoursLeft = Math.floor(hoursdecimal);
    var minLeft = 60 - currentDate.getMinutes();
    var secLeft = 60 - currentDate.getSeconds();

    $('#days').val(daysLeft);
    $('#hours').val(hoursLeft);
    $('#minutes').val(minLeft);
    $('#seconds').val(secLeft);   
},1000);
于 2012-05-02T17:03:12.760 に答える
1

このようになりたいですか?私はあなたのJsfiddleを更新しました

ここを参照してください:http://jsfiddle.net/pyRR8/23/

于 2012-05-02T17:06:30.623 に答える