Tema: Restar Hora
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/03/2014, 19:42
Avatar de Dalam
Dalam
 
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 2 meses
Puntos: 56
Respuesta: Restar Hora

para no complicarte con clases te doy una funcion que cree hace tiempo para esto
Código PHP:
Ver original
  1. function time_dif($time1,$time2){
  2.     $time1 = date_parse($time1);
  3.     $time2 = date_parse($time2);
  4.     //convertimos a segundos
  5.     $seconds1 = $time1['hour'] * 3600 + $time1['minute'] * 60 + $time1['second'];
  6.     $seconds2 = $time2['hour'] * 3600 + $time2['minute'] * 60 + $time2['second'];
  7.     $diff = $seconds2 - $seconds1;
  8.     return gmdate("H:i:s",$diff);
  9. }
  10. echo time_dif('02:30:00','03:30:00');
Si el segundo valor es inferior al primero te da un valor como si fuera otro dia
Código PHP:
Ver original
  1. echo time_dif('03:30:00','02:30:00');
esto te daria como resultado 23:00:00
si quieres hacerlo con clases
Código PHP:
Ver original
  1. $datetime1 = date_create('02:30:00');
  2. $datetime2 = date_create('03:41:00');
  3. $interval = date_diff($datetime1, $datetime2);
  4. echo $interval->format('%H:%i:%s');
El unico problema de usar esta forma es que el cero inicial no se muestra en las horas ni en los minutos ni los segundos.
Para evitar esto puedes usar el format individualmente y usar la funcion str_pad para rellenar, o usas mi funcion.

Última edición por Dalam; 04/03/2014 a las 19:52