PHP - calculo de horas

 
Vista:

calculo de horas

Publicado por rodrigo (2 intervenciones) el 05/06/2005 16:25:03
hola como estan

necesito saber un codigo para calcular diferencias entre horas
tengo una hora inicial y una final y debe darme la direncia
ejemplo
inicial 16:45:20
final 16:50:30
total 00:05:10
gracias
por su colaboracion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:calculo de horas

Publicado por a677dar (29 intervenciones) el 06/06/2005 16:19:22
PHP maneja el tiempo con numeros enteros que representan segundos transcurridos desde el 1 enero de 1970 (esa fecha se la denomina Unix Epoch).

Por lo tanto para obtener una diferencia entre fechas simplemente se deben obtener los valores numericos (timestamp) de ambas fechas, luego restarlas y volver a construir una fecha a partir de ese nuevo valor.

En el caso que planteas, primero deberias utilizar la funcion mktime() para pasar una fecha a timestamp, asi:

//Convertir tus fechas a valores numericos:
$t1 = mktime(16,45,20);
$t2 = mktime(16,50,30);

//Obtener la diferencia de ambos valores:
$dif = $t2-$t1;

//Obtener las horas, minutos y segundos a partir de la diferencia:
$horas = intval($dif / 3600);
$min = intval(($dif-$horas*3600)/60);
$seg = $dif-$horas*3600-$min*60;

echo "Diferencia: $horas Hs:$min Min:$seg Seg";

espero te sirva...........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:calculo de horas

Publicado por rodrigo (2 intervenciones) el 08/06/2005 03:10:32
amigo
muchas gracias
ahora necesito saber como colocar esos valores en un text
es decir cuando mi pagina carga ten un text tengo la hora del sistema y tengo dos text mas, uno para colocar la hora que ha transcurrido y el otro para colocar la diferencia y tengo un boton llamada "calcular diferencia" cuando haga click en ese boton necesito colocar esos resultado en sus text correspondientes
de nuevo gracias por tu colaboracion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:calculo de horas

Publicado por a677dar (29 intervenciones) el 08/06/2005 14:59:58
No se si cuando tomas la "hora del sistema" te referia a la hora "client-side" o a la hora "server-side".

Yo asumí que es a la hora "client-side". Fijate si es esto lo que necesitas:

<?
$horadif="";
$otrahora="";
if(isset($_POST["otrahora"]))
$otrahora=$_POST["otrahora"];

$horacliente="";
if(isset($_POST["horacliente"])){
$horacliente=$_POST["horacliente"];
//Convertir tus fechas a valores numericos:
$time1 = split(":", $horacliente);
$time2 = split(":", $otrahora);
$t1 = mktime($time1[0],$time1[1],$time1[2]);
$t2 = mktime($time2[0],$time2[1],$time2[2]);

if($t1>$t2)
die("Error, La fecha cliente debe ser mayor a la otra fecha");

//Obtener la diferencia de ambos valores:
$dif = $t2-$t1;

//Obtener las horas, minutos y segundos a partir de la diferencia:
$horas = intval($dif / 3600);
$min = intval(($dif-$horas*3600)/60);
$seg = $dif-$horas*3600-$min*60;

$horadif="$horas:$min:$seg";
}

?>
<script>
function fijarHoracliente(){
var ya=new Date();
var hora=ya.getHours()+":"+ya.getMinutes()+":"+ya.getSeconds();
document.forms[0].horacliente.value=hora}
</script>

<body onload="fijarHoracliente()">
<form method="POST">
<?
echo "
Hora Cliente: <input type=\"text\" name=\"horacliente\" size=8 value=\"$horacliente\"> (h:m:s)<br>
Otra Hora: <input type=\"text\" name=\"otrahora\" size=8 value=\"$otrahora\"> (h:m:s)<br>
Diferencia: <input type=\"text\" name=\"horadif\" size=10 value=\"$horadif\"> (h:m:s)<br>
<input type=\"submit\" value=\"Calcular diferencia\">";

?>
</form>
</body>

Espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar