Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/03/2002, 22:40
Avatar de Kaopectate
Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 11 meses
Puntos: 38
Re: como puedo sacar la diferencia en horas

Hola rmbdcn01.

Te preparé el siguiente ejemplo, debes tener ya las horas validadas, ya que sino la resta puede dar cualquier cosa. Asume entradas separadas por ":", ejemplos 11:22:32 o 1:15:30 o hasta 22:1:1. Asume hora militar y asume también primera hora mayor o igual que segunda.

Si no puedes garantizar alguna de esas condiciones, se podría arreglar igualmente.

Espero te sirva:

Código:
<html>
<head>
 <script language="JavaScript">

  function padNmb(nStr, nLen){
   var sRes = String(nStr);
   var sCeros = "0000000000";
   return sCeros.substr(0, nLen - sRes.length) + sRes;
  }

  function stringToSeconds(tiempo){
   var sep1 = tiempo.indexOf(":");
   var sep2 = tiempo.lastIndexOf(":");
   var hor = tiempo.substr(0, sep1);
   var min = tiempo.substr(sep1 + 1, sep2 - sep1 - 1);
   var sec = tiempo.substr(sep2 + 1);
   return (Number(sec) + (Number(min) * 60) + (Number(hor) * 3600));
  }

  function secondsToTime(secs){
   var hor = Math.floor(secs / 3600);
   var min = Math.floor((secs - (hor * 3600)) / 60);
   var sec = secs - (hor * 3600) - (min * 60);
   return padNmb(hor, 2) + ":" + padNmb(min, 2) + ":" + padNmb(sec, 2);
  }

  function substractTimes(t1, t2){
   var secs1 = stringToSeconds(t1);
   var secs2 = stringToSeconds(t2);
   var secsDif = secs1 - secs2;
   return secondsToTime(secsDif);
  }

  function calcT3(){
   document.formulario.t3.value = substractTimes(document.formulario.t1.value, document.formulario.t2.value)
  }

 </script>
</head>
<body>
 <form name="formulario">
 Hora1 (hh:mm:ss): <input type="text" name="t1" value="12:30:15"><br>
 Hora2 (hh:mm:ss): <input type="text" name="t2" value="3:40:18"><br>
 <hr>
 Resta (hh:mm:ss): <input type="text" name="t3" value=""><br><br>
 <input type="button" onclick="calcT3()" value="Restar">
 </form>
</body>
</html>
Suerte