Foros del Web » Programando para Internet » PHP »

Como sumar horas, minutos y segundos?

Estas en el tema de Como sumar horas, minutos y segundos? en el foro de PHP en Foros del Web. Hola, necesito hacer una función que se encarge de sumar horas. He visto un código que suma horas y minutos: Cita: <?php $hora1="2:30"; $hora2="23:42"; $hora1=split(":",$hora1); ...
  #1 (permalink)  
Antiguo 16/10/2008, 07:58
 
Fecha de Ingreso: junio-2008
Mensajes: 56
Antigüedad: 16 años, 5 meses
Puntos: 1
Como sumar horas, minutos y segundos?

Hola, necesito hacer una función que se encarge de sumar horas.

He visto un código que suma horas y minutos:

Cita:
<?php $hora1="2:30";
$hora2="23:42";
$hora1=split(":",$hora1);
$hora2=split(":",$hora2);
$horas=(int)$hora1[0]+(int)$hora2[0];
$minutos=(int)$hora1[1]+(int)$hora2[1];
$horas+=(int)($minutos/60);
$minutos=$minutos%60;
if($minutos==0)$minutos="00";
echo $horas.":".$minutos;

?>
Pero el formato que le voy a pasar es hh:mm:ss, además como tipo varchar.

Tengo una función que resta las horas pasándolos como tipo varchar y no puedo convertir ahora el tiempo a tipo time ya que anularía mi función de restar horas. Aunque creo que en este código las horas se pasan tb como tipo varchar.

Necesitaría que estuviera como función ya que voy a acumular las horas. es decir, si un dia tengo las 05:00:00, otro dia 19:00:00 y otro dia 8:30:00 me debería devolver 32:30:00. Esto lo haría con una varible acumulador pero debería llamar a la función de una forma parecida sumahoras(acum,hora).

Muchas gracias.
  #2 (permalink)  
Antiguo 16/10/2008, 08:36
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Como sumar horas, minutos y segundos?

Hola,

Checa este otro post tal vez te ayude un poco,

http://www.forosdelweb.com/f18/sumar...oblema-358164/

Saludos!!!
__________________
"Eres grande por que caminas entre gigantes"
  #3 (permalink)  
Antiguo 16/10/2008, 08:45
 
Fecha de Ingreso: junio-2008
Mensajes: 56
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Como sumar horas, minutos y segundos?

Ese post ya le habia visto antes y probado, el problema que tiene es que al sumar 2 horas si sobrepasa 24 horas, se vuelve a 0, es decir si le pasas $time1 = "24:00:00" y $time2 = "02:0:00" te devuelve 01:00:00.

Lo que yo necesito es que me acumule las horas, en el ejemplo anterior me devería devolver 26:00:00.
  #4 (permalink)  
Antiguo 16/10/2008, 09:32
 
Fecha de Ingreso: junio-2008
Mensajes: 56
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Como sumar horas, minutos y segundos?

Después de dar vueltas y vueltas a ver cómo funciona el tema de las horas,minutos y segundos, y teniendo el código que he puesto antes como base, he sacado una función que dadas dos horas con formato hh:mm:ss (de tipo varchar) devuelve la suma (acumulación) de las horas

Además le he dado un formato para cuando las horas, minutos o segundos sean menor de 10 no las muestre con un sólo digito sino anteponiendo un 0. Por ejemplo, en vez de 12:5:1 ponga 12:05:01, ya que sino puede llegar a confusiones.

Dejo el código por si a alguien le pudiera servir:

Cita:
<?php
function sumahoras ($hora1,$hora2){
$hora1=explode(":",$hora1);
$hora2=explode(":",$hora2);
$horas=(int)$hora1[0]+(int)$hora2[0];
$minutos=(int)$hora1[1]+(int)$hora2[1];
$segundos=(int)$hora1[2]+(int)$hora2[2];
$horas+=(int)($minutos/60);
$minutos=(int)($minutos%60)+(int)($segundos/60);
$segundos=(int)($segundos%60);
return (intval($horas)<10?'0'.intval($horas):intval($hora s)).':'.($minutos<10?'0'.$minutos:$minutos).':'.($ segundos<10?'0'.$segundos:$segundos);
}
$horatotal = sumahoras("25:30:05","11:30:23"); //ejemplo para probar que funciona correctamente llamando a la función.
echo $horatotal;
?>
Que os vaya bien!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 13:11.