Foros del Web » Programando para Internet » PHP »

Sumar horas problema

Estas en el tema de Sumar horas problema en el foro de PHP en Foros del Web. Hola, quiero sumar dos horas y para ello me he montado la siguiente función: Código PHP: function  SumaHoras (  $hora1 ,  $hora2  ) {     if( ( ...
  #1 (permalink)  
Antiguo 18/12/2005, 11:21
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Sumar horas problema

Hola, quiero sumar dos horas y para ello me he montado la siguiente función:

Código PHP:
function SumaHoras$hora1$hora2 )
{
    if( (
$tsHora1 strtotime($hora1)) == -1
        
|| ($tsHora2 strtotime($hora2)) == -)
    {
        return 
FALSE;
    }
    else
    {
        echo(
"<BR>Suma: $tsHora1($hora1) + $tsHora2($hora2): ".date('H:i:s'$tsHora1 $tsHora2));
        return 
date('H:i:s'$tsHora1 $tsHora2);
    }

El echo que hay ahí da el siguiente resultado:

Suma: 1134896400(9:00:00) + 1134865800(00:30:00): 03:01:44

La función de resta es clavada a la que muestro excepto a la hora de hacer la operación aritmética. Sin embargo, ésta última funciona a la perfección.
No sé por qué pero me da que al hacer una suma de un número tan grande se desborda la cosa y por eso da un número que no toca. ¿Esoty en lo cierto? ¿Sí es así, cómo podría solucionarlo?

Última edición por jerkan; 19/12/2005 a las 07:32
  #2 (permalink)  
Antiguo 19/12/2005, 07:33
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Solucionado. Aquí dejo la solución:

Código PHP:
    // funcion que devuelve un array con los elementos de una hora
    
        
function parteHora$hora )
        {    
            
$horaSplit explode(":"$hora);
        
            if( 
count($horaSplit) < )
            {
                
$horaSplit[2] = 0;
            }
            
            return 
$horaSplit;
        }

    
// funcion que devuelve la suma de dos horas en formato horas:minutos:segundos
    // Devuelve FALSE si se ha producido algun error
        
function SumaHoras$time1$time2 )
        {
            list(
$hour1$min1$sec1) = parteHora($time1);
            list(
$hour2$min2$sec2) = parteHora($time2);

            return 
date('H:i:s'mktime$hour1 $hour2$min1 $min2$sec1 $sec2));
        } 

Última edición por jerkan; 19/12/2005 a las 10:53
  #3 (permalink)  
Antiguo 05/07/2006, 06:36
 
Fecha de Ingreso: febrero-2005
Mensajes: 13
Antigüedad: 19 años, 2 meses
Puntos: 0
Gracias, me fue muy util.
  #4 (permalink)  
Antiguo 25/01/2008, 16:35
Avatar de razcoll  
Fecha de Ingreso: abril-2005
Mensajes: 76
Antigüedad: 19 años
Puntos: 1
Re: Sumar horas problema

Muy buen aporte :)
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.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 00:29.