Foros del Web » Programando para Internet » PHP »

Diferencia de tiempos

Estas en el tema de Diferencia de tiempos en el foro de PHP en Foros del Web. Hola estoy teniendo dificultad para obtener diferencia entre dos tiempos guardados en mi base de datos Lo que tendría que hacer es teniendo tiempo A ...
  #1 (permalink)  
Antiguo 14/08/2015, 23:33
Avatar de facurouss  
Fecha de Ingreso: enero-2010
Mensajes: 101
Antigüedad: 14 años, 3 meses
Puntos: 0
Diferencia de tiempos

Hola estoy teniendo dificultad para obtener diferencia entre dos tiempos guardados en mi base de datos

Lo que tendría que hacer es teniendo tiempo A = 00:12:43 y tiempo B = 00:14:12
mostrarme la diferencia entre ambas pero no puedo lograrlo

Alguna idea de como armarlo?
  #2 (permalink)  
Antiguo 15/08/2015, 00:46
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Diferencia de tiempos

Utiliza los métodos de la clase DateTime.

Código PHP:
Ver original
  1. $a = new DateTime('00:12:43');
  2. $b = new DateTime('00:14:12');
  3. $dif = $a->diff($b);
  4. echo $dif->format('%H:%I:%S'); //00:01:29

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 15/08/2015, 08:46
Avatar de facurouss  
Fecha de Ingreso: enero-2010
Mensajes: 101
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Diferencia de tiempos

Gracias por la respuesta, pero al parecer mi hosting no soporta esa funcion alguna alternativa? :S
  #4 (permalink)  
Antiguo 15/08/2015, 10:05
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Diferencia de tiempos

Es curioso que tu hosting tenga una versión de PHP inferior a la 5.2.0, la cual, según el manual oficial, es la versión en la que fue implementada esta clase. Creí que la más antigua que se usa actualmente es la 5.2.3, pero bueno.

Otra manera más rudimentaria de hacer esto:

Código PHP:
Ver original
  1. $a = strtotime('00:12:43');
  2. $b = strtotime('00:14:12');
  3. $h = 0; $m = 0; $s = $a - $b;
  4. $s = $s < 0 ? -$s : $s;
  5. while ($s > 59){
  6.     $s -= 60;
  7.     $m++;
  8. }
  9. while ($m > 59){
  10.     $m -= 60;
  11.     $h++;
  12. }
  13. $h = $h < 10 ? '0' . $h : $h;
  14. $m = $m < 10 ? '0' . $m : $m;
  15. $s = $s < 10 ? '0' . $s : $s;
  16. echo $h . ':' . $m . ':' . $s; //00:01:29

Supongo que utilizando otras funciones de fecha y hora podrías ahorrarte algunas líneas, pero viendo tu problema de versión de PHP, creo que esto sería lo más adaptable posible a versiones antiguas de PHP.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 15/08/2015 a las 11:17 Razón: Corrección

Etiquetas: diferencia
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




La zona horaria es GMT -6. Ahora son las 23:48.