PHP - Sumar Horas

   
Vista:

Sumar Horas

Publicado por Brayan (76 intervenciones) el 31/01/2017 15:09:37
Buenos dias desde mi pais, tengo una super tranca, actualmente he logrado hacer muchas cosas con las fechas, pero estoy necesitando sumar las horas minutos y segundos de dos o mas fechas sin embargo no he tenido exito puedo sacar las diferencias entre una fecha y otra, pero si por ejemplo tengo estas dos diferencias:

1:34:58 - 1 hora 34 minutos 58 segundos
0:35:00 - 35 minutos

y los quiero sumar no se como hacerlo intente con esto:

1
strtotime('+1:34:58',strtotime('0:35:00'))

y no me da, entonces queria saber si alguien sabe como podria sumar esas horas minutos y segundos en conjunto ya que en muchas ocasiones podria presentarse que sea muchas fechas al tiempo.

De antemano muchas gracias
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

Sumar Horas

Publicado por Brayan (76 intervenciones) el 31/01/2017 17:06:59
Siendo muy sincero no logre entender ese codigo, sin embargo antes de verlo y habia encontrado otro, tanto para sumas como para restas el cual comparto en este post:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
function suma($date_1 , $date_2)
{
    $datetime1 = date_create($date_1);
    $datetime2 = date_create($date_2);
 
    $interval = ($datetime1 + $datetime2);
 
    return $interval;
 
}
 
    function suma_horas($hora1,$hora2){
 
    $hora1=explode(":",$hora1);
    $hora2=explode(":",$hora2);
    $temp=0;
 
    //sumo segundos 
    $segundos=(int)$hora1[2]+(int)$hora2[2];
    while($segundos>=60){
        $segundos=$segundos-60;
        $temp++;
    }
 
    //sumo minutos 
    $minutos=(int)$hora1[1]+(int)$hora2[1]+$temp;
    $temp=0;
    while($minutos>=60){
        $minutos=$minutos-60;
        $temp++;
    }
 
    //sumo horas 
    $horas=(int)$hora1[0]+(int)$hora2[0]+$temp;
 
    if($horas<10)
        $horas= '0'.$horas;
 
    if($minutos<10)
        $minutos= '0'.$minutos;
 
    if($segundos<10)
        $segundos= '0'.$segundos;
 
    $sum_hrs = $horas.':'.$minutos.':'.$segundos;
 
    return ($sum_hrs);
 
    }
 
        /* 
     * Original de: http://www.aaamatematicas.com/subtsbhm.htm      
     */ 
 
    ##Función que resta horas Ahi que tenerla por si a caso
 
    function restar_horas($hora1,$hora2){
 
    $temp1 = explode(":",$hora1);
    $temp_h1 = (int)$temp1[0];
    $temp_m1 = (int)$temp1[1];
    $temp_s1 = (int)$temp1[2];
    $temp2 = explode(":",$hora2);
    $temp_h2 = (int)$temp2[0];
    $temp_m2 = (int)$temp2[1];
    $temp_s2 = (int)$temp2[2];
 
    // si $hora2 es mayor que la $hora1, invierto 
    if( $temp_h1 < $temp_h2 ){
        $temp  = $hora1;
        $hora1 = $hora2;
        $hora2 = $temp;
    }
    /* si $hora2 es igual $hora1 y los minutos de 
       $hora2 son mayor que los de $hora1, invierto*/ 
    elseif( $temp_h1 == $temp_h2 && $temp_m1 < $temp_m2){
        $temp  = $hora1;
        $hora1 = $hora2;
        $hora2 = $temp;
    }
    /* horas y minutos iguales, si los segundos de  
       $hora2 son mayores que los de $hora1,invierto*/ 
    elseif( $temp_h1 == $temp_h2 && $temp_m1 == $temp_m2 && $temp_s1 < $temp_s2){
        $temp  = $hora1;
        $hora1 = $hora2;
        $hora2 = $temp;
    }
 
    $hora1=explode(":",$hora1);
    $hora2=explode(":",$hora2);
    $temp_horas = 0;
    $temp_minutos = 0;
 
    //resto segundos 
    $segundos;
    if( (int)$hora1[2] < (int)$hora2[2] ){
        $temp_minutos = -1;
        $segundos = ( (int)$hora1[2] + 60 ) - (int)$hora2[2];
    }
    else
        $segundos = (int)$hora1[2] - (int)$hora2[2];
 
    //resto minutos 
    $minutos;
    if( (int)$hora1[1] < (int)$hora2[1] ){
        $temp_horas = -1;
        $minutos = ( (int)$hora1[1] + 60 ) - (int)$hora2[1] + $temp_minutos;
    }
    else
        $minutos =  (int)$hora1[1] - (int)$hora2[1] + $temp_minutos;
 
    //resto horas     
    $horas = (int)$hora1[0]  - (int)$hora2[0] + $temp_horas;
 
    if($horas<10)
        $horas= '0'.$horas;
 
    if($minutos<10)
        $minutos= '0'.$minutos;
 
    if($segundos<10)
        $segundos= '0'.$segundos;
 
    $rst_hrs = $horas.':'.$minutos.':'.$segundos;
 
    return ($rst_hrs);
 
    }


Copie y pegue tal cual lo consegui, yo modifique las variables para entenderlo mejor y saber que pertenece a que.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve

Sumar Horas

Publicado por xve (6036 intervenciones) el 31/01/2017 19:02:04
Gracias Brayan!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar