2012-07-12 11 views
7

Estoy buscando una manera fácil de dar salida a milisegundos en horas-minutos-segundos. He visto algunos complementos, pero no quiero usar un complemento en un complemento, y he visto muchos fragmentos de cuenta atrás, pero estos están usando la fecha, no estoy usando una fecha, sino milisegundos.secuencia de comandos de cuenta atrás de javascript desde milisegundos en horas-minutos-segundos

Gracias.

EDIT: estoy buscando un script que cuenta atrás desde los milisegundos xxxx a cero

// hasta ahora tengo este

diff = 100000000; 

    function showTimer() { 

     hours = Math.floor(diff/(1000*60*60)); 
     mins = Math.floor(diff/(1000*60)); 
     secs = Math.floor(diff/1000); 

     $('.count').html(hours+ 'hours' +minutes + 'minutes' +seconds + ' seconds'); 
    } 

    setInterval(function(){showTimer()}, 1000); 
+0

Deberá usar Date para un temporizador confiable? – Bergi

Respuesta

12

Simple maths.

1000 milisegundos = 1 segundo.

60 segundos = 1 minuto.

60 minutos = 1 hora.

Así que si tienes 123456789 milisegundos, usted hacer algo como:

123456789/1000 (de segundo) que es 123456,789

123456,789/60 (al minuto) que es 2,057.6

2,057.6/60 (a horas) que es 34.29 horas.

continuación, utilizar el resto (0,2935525) y convertir esto en minutos - que es 17.61315

utilizar el resto de nuevo (0,61315) y convertirlo a segundos ... que es 36.789

Por lo tanto, en resumen, 123456789 milisegundos equivalen a 34 horas, 17 minutos y 37 segundos.

Estoy seguro de que puede hacer la parte de JavaScript usted mismo.


Bien, quizás necesites un poco más de ayuda.

DEMO: http://jsbin.com/eqawam/edit#javascript,html,live

var millis = 123456789; 

function displaytimer(){ 
    //Thank you MaxArt. 
    var hours = Math.floor(millis/36e5), 
     mins = Math.floor((millis % 36e5)/6e4), 
     secs = Math.floor((millis % 6e4)/1000); 
     $('.count').html(hours+':'+mins+':'+secs); 
} 

setInterval(function(){ 
    millis -= 1000; 
    displaytimer(); 
}, 1000); 

Además, para la lectura adicional - setInterval puede desviarse. Por lo tanto, no espere que esto sea 100% exacto. Will setInterval drift?

+0

conozco el formato, pero no sé cómo hacerlo dinámico ;-) – user759235

+0

@ user759235 - editado arriba, con el ejemplo. – ahren

+0

Gracias esto lo que estoy buscando. Sí, sé que no es precisa, pero puedo vivir con uno o 2 segundos diferentes ;-) – user759235

3

no estoy seguro de lo que estás pidiendo , pero ...

var hours = Math.floor(millis/36e5), 
    mins = Math.floor((millis % 36e5)/6e4), 
    secs = Math.floor((millis % 6e4)/1000); 
+0

espero que no te importe, acredité tu código en mi respuesta. – ahren

+0

Por supuesto que no, le diste crédito. – MaxArt

0

Tome un vistazo a: http://code.google.com/p/jquery-countdown/

He utilizado este.

en javascript que puede hacer lo siguiente

 $('#counter_2').countdown({ 
     image: 'img/digits.png', 
     startTime: '10:59', 
     timerEnd: function(){ 
     alert('The Time Limit for the quiz has expired. Click OK to submit quiz'); 
     $('#submit_quiz_form').submit(); 
     }, 
     format: 'mm:ss' 
    }); 

Usted puede obtener la hora de utilizar las funciones que se muestran arriba ... necesitaba un formulario para ser presentado cuando termina el temporizador ...puede hacer algo similar si es necesario

+0

esto es un plugin, así que no puedo usarlo, pero gracias doy – user759235

+0

ohh lo siento. .. no leí la pregunta con cuidado !! – jsshah

Cuestiones relacionadas