2010-12-29 9 views
2

したがって、(静的な)時間/分/秒で秒の割り当てを表示するにはいくつかの方法があります。しかし、私はタイマーダウンの視覚のカウントを生成しようとしています:現在の時間で要素を更新している間、jQueryで何秒間に分単位に変換できますか?

$('#someelement').html(minCounter + ' minutes ' + ((secCounter == 0) ? '' : (secCounter + ' seconds'))); 

私のカウンタは、これまで1秒トリガーのsetIntervalの内側に縮小されています

//....... 
var counter = redirectTimer; 
jQuery('#WarningDialogMsg').html(minCounter + ' minutes ' + ((secCounter == 0) ? '' : (secCounter + ' seconds'))); 

//........ 

SetInternval(function() { 
    counter -= 1; 
    secCounter = Math.floor(counter % 60); 
    minCounter = Math.floor(counter/60); 

//....... 

    $('#someelement').html(minCounter + ' minutes ' + ((secCounter == 0) ? '' : (secCounter + ' seconds'))); 
}, 1000) 

それは2分カウンタであるが、私はドン」 120秒を表示したい。私は1:59を表示したい(とカウントダウン)。

私は上記を使用して動作させることができましたが、私の主な質問は:は、上記を達成するためのよりエレガントな方法はありますか?(注:私は一度 "counter == 0"にリダイレクトしています)。

+0

すなわちsecCounter = Math.floorにMath.floor(カウンタ60%)。ラインは必要ありません。それはとにかく大丈夫と思っています。 – Scorchio

答えて

3

http://ejohn.org/blog/javascript-pretty-date/

又はこれを試してください:

var old_date = new Date('Wed Dec 29 2010 21:56:33'); 
var time_update = dateDiff(old_date, new Date()); // {"diff":119000,"ms":0,"s":59,"m":1,"h":0,"d":0} 


function dateDiff(date1, date2) { 
    var diff = Date.parse(date2) - Date.parse(date1); 

    if (diff < 0) return false; 
    var objDate = isNaN(diff) ? NaN : { 
     diff: diff, 
     ms: Math.floor(diff % 1000), 
     s: Math.floor(diff/1000 % 60), 
     m: Math.floor(diff/60000 % 60), 
     h: Math.floor(diff/3600000 % 24), 
     d: Math.floor(diff/86400000) 
    }; 
    return objDate; 
} 
2

Keith WoodのこのjQuery countdownプラグインを使用して私は時間を保存しました(ahahaha)。

関連する問題