2016-06-08 3 views
0

Ich möchte eine jQuery-Funktion ähnlich wie countTo oder eine reine Javascript-Funktion, um bis zu (Sekunden oder Dezimal) zu zählen ... und Tage HH: MM ausgeben : SSjQuery-Zähler zum Hochzählen Ergebnis (Tage HH: mm: ss)

convert_seconds (2.681.623) => Ausgang "31D 00.53.43"

oder Dezimalstunden

convert_decimalHours (25,555) => Ausgang "1D 01.33.18" (ich glaube, Es ist nicht korrekt, aber ist so etwas kkkkk)

Ich bevorzuge Sekunden genauer und einfacher zu m anipulate ...

hier ist etwas, das ich versucht ...

http://jsfiddle.net/5LWgN/105/

und muss eine Live-Zähler 1 von 1 Sekunden zu zählen

String.prototype.toHHMMSS = function() { 
    var sec_num = parseInt(this, 10); // don't forget the second parm 
    var hours = Math.floor(sec_num/3600); 
    var minutes = Math.floor((sec_num - (hours * 3600))/60); 
    var seconds = sec_num - (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; 
} 

var count = '2681623'; 

var counter = setInterval(timer, 1000); 

function timer() { 

    console.log(count); 

    if (parseInt(count) <= 0) { 
     clearInterval(counter); 
     return; 
    } 
    var temp = count.toHHMMSS(); 
    count = (parseInt(count) + 1).toString(); 

    $('#timer').html(temp); 
} 

Antwort

1

Sie haben einige Fehler in der Umwandlungsschritt, und jemand hat vorher gefragt, siehe here.

var hours = parseInt(totalSec/3600) % 24; 
var minutes = parseInt(totalSec/60) % 60; 
var seconds = totalSec % 60; 

var result = (hours < 10 ? "0" + hours : hours) + "-" + (minutes < 10 ? "0" + minutes : minutes) + "-" + (seconds < 10 ? "0" + seconds : seconds);