Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/02/2014, 21:09
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Calcular tiempo entre dos horas (HH:MM:SS)

Claro que se puede:

Código Javascript:
Ver original
  1. var hora1 = ("04:29:01").split(":"),
  2.     hora2 = ("03:28:56").split(":"),
  3.     t1 = new Date(),
  4.     t2 = new Date();
  5.  
  6. t1.setHours(hora1[0], hora1[1], hora1[2]);
  7. t2.setHours(hora2[0], hora2[1], hora2[2]);
  8.  
  9. //Aquí hago la resta
  10. t1.setHours(t1.getHours() - t2.getHours(), t1.getMinutes() - t2.getMinutes(), t1.getSeconds() - t2.getSeconds());
  11.  
  12. //Imprimo el resultado
  13. document.body.innerHTML = "La diferencia es de: " + (t1.getHours() ? t1.getHours() + (t1.getHours() > 1 ? " horas" : " hora") : "") + (t1.getMinutes() ? ", " + t1.getMinutes() + (t1.getMinutes() > 1 ? " minutos" : " minuto") : "") + (t1.getSeconds() ? (t1.getHours() || t1.getMinutes() ? " y " : "") + t1.getSeconds() + (t1.getSeconds() > 1 ? " segundos" : " segundo") : "");

El resultado es:

Código HTML:
Ver original
  1. La diferencia es de: 1 hora y 5 segundos

Con tus datos, el resultado sería: "La diferencia es de: 5 segundos".

Tenemos inicialmente 2 horas con el formato HH:MM:SS, a cada una la convierto en un array distinto, separando sus elementos desde el ":" que separa las horas de los minutos y segundos, además, creo dos objetos Date para manipular las horas.

A cada objeto Date, le asigno las horas, minutos y segundos que obtuve de cada una de las horas en cuestión, luego, asigno al primer objeto sus nuevos componentes de horas, minutos y segundos, que no son otros que la resta de las horas, minutos y segundos del primer objeto con el segundo. Finalmente, imprimo la diferencia.

Así es como se ve en ejecución: http://jsfiddle.net/pwYG8/

La línea de código de la impresión del resultado es un poco larga porque acomodo las palabras que se mostrarán según el valor de cada parte del objeto Date, para que cuando haya una hora, un minuto o un segundo en el resultado, se muestre de esa forma y no "1 segundos", por ejemplo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand