Foros del Web » Programando para Internet » PHP »

Calcular tiempo transcurrido entre dos fechas

Estas en el tema de Calcular tiempo transcurrido entre dos fechas en el foro de PHP en Foros del Web. Hola a todos. Tengo una tabla llamada ingreso, en la cual tengo el campo fechahorainicio, y otro campo fechahorafin. Al generar la consulta quiero que ...
  #1 (permalink)  
Antiguo 03/09/2016, 12:19
 
Fecha de Ingreso: enero-2005
Mensajes: 16
Antigüedad: 17 años, 5 meses
Puntos: 0
Calcular tiempo transcurrido entre dos fechas

Hola a todos.
Tengo una tabla llamada ingreso, en la cual tengo el campo fechahorainicio, y otro campo fechahorafin.
Al generar la consulta quiero que me calcule el tiempo transcurrido en H:i:s de cada registro.

El formato que uso es Y-m-d H:i:s

Espero me puedan ayudar.
  #2 (permalink)  
Antiguo 03/09/2016, 13:34
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Calcular tiempo transcurrido entre dos fechas

Encontré esto en google:

Código PHP:
Ver original
  1. $fecha1 = new DateTime("2010-07-28 01:15:52");
  2. $fecha2 = new DateTime("2012-11-30 02:33:45");
  3. $fecha = $fecha1->diff($fecha2);
  4. printf('%d años, %d meses, %d días, %d horas, %d minutos', $fecha->y, $fecha->m, $fecha->d, $fecha->h, $fecha->i);

Ve como andas con eso...
  #3 (permalink)  
Antiguo 09/09/2016, 18:37
 
Fecha de Ingreso: enero-2005
Mensajes: 16
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Calcular tiempo transcurrido entre dos fechas

Hola alvaro_trewhela gracias por tu aporte.
En lugar de ingresar manualmente la fecha y hora como el ejemplo que me das, quiero que me calcule los campos:
fechahorainicio
fechahorafin

Tengo la tabla ingreso con los campos fechahorainicio y otro campo fechahorafin, y tengo otro campo llamado estadía, mi idea es que el campo estadía calcule el tiempo transcurrido entre esos dos campos en formato H:i:s

Agradeceré tus aportes.
  #4 (permalink)  
Antiguo 09/09/2016, 23:46
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 8 años, 11 meses
Puntos: 46
Respuesta: Calcular tiempo transcurrido entre dos fechas

http://php.net/manual/es/function.date.php

Código PHP:
$now date("Y-m-d H:i:s"
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #5 (permalink)  
Antiguo 25/10/2016, 19:34
 
Fecha de Ingreso: enero-2005
Mensajes: 16
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Calcular tiempo transcurrido entre dos fechas

Creo que no me doy a explicar.

Tengo lo siguiente:
Tabla: ingreso
Campos: fechahorainicio, fechahorafin, estadia
Tengo una consulta que me muestra todos los registros de la tabla "ingreso", y me muestra lo siguiente.

fechahorainicio fechahorafin estadia
------------------------------------------------------------------
2016-09-05 09:51:00 2016-09-05 11:12:00 00:00:00
2016-09-05 12:00:00 2016-09-05 14:18:00 00:00:00




y necesito que me muestre lo siguiente:

fechahorainicio fechahorafin estadia
------------------------------------------------------------------
2016-09-05 09:51:00 2016-09-05 11:12:00 01:21:00
2016-09-05 12:00:00 2016-09-05 14:18:00 02:18:00

El campo estadía debe calcular el tiempo entre las dos fechas.


El código que me dio alvaro_trewhela esta muy bueno, pero en lugar de ingresar fecha y hora manual, me debe halar los datos de los campos mencionados anteriormente.

$fecha1 = new DateTime("2010-07-28 01:15:52");
$fecha2 = new DateTime("2012-11-30 02:33:45");
$fecha = $fecha1->diff($fecha2);
printf('%d años, %d meses, %d días, %d horas, %d minutos', $fecha->y, $fecha->m, $fecha->d, $fecha->h, $fecha->i);
  #6 (permalink)  
Antiguo 26/10/2016, 02:38
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 18 años, 7 meses
Puntos: 154
Respuesta: Calcular tiempo transcurrido entre dos fechas

Hola webnayos,

Es tan fácil como esto:

Código PHP:
Ver original
  1. $fecha1 = new DateTime($resultado_de_tu_campo_de_fecha_1);
  2. $fecha2 = new DateTime($resultado_de_tu_campo_de_fecha_2);
  3. $fecha = $fecha1->diff($fecha2);
  4. printf('%d años, %d meses, %d días, %d horas, %d minutos', $fecha->y, $fecha->m, $fecha->d, $fecha->h, $fecha->i);
  #7 (permalink)  
Antiguo 26/10/2016, 03:43
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 11 años, 8 meses
Puntos: 123
Respuesta: Calcular tiempo transcurrido entre dos fechas

Por si alguien llega aquí con una versión inferior a php5 dejo esta funcion que recibe el tiempo en segundos y lo pasa a días, horas, minutos y segundos, se puede calcular el tiempo en segundos de una fecha con strtotime.

El motivo de esta función es que la clase DateTime no esta disponible en las versiones inferiores a php 5

Código PHP:
function seg_a_dhms($seg) { 
    
$d floor($seg 86400);
    
$h floor(($seg - ($d 86400)) / 3600);
    
$m floor(($seg - ($d 86400) - ($h 3600)) / 60);
    
$s $seg 60

return 
"$d Días, $h horas, $m minutos, $s segundos"
}
$fechaInicial '2013-04-11 00:34:19';
$fechaFinal '2013-04-11 00:35:50';
$segundos strtotime($fechaFinal) - strtotime($fechaInicial);

$tiempo_transcurrido seg_a_dhms$segundos );
echo 
$tiempo_transcurrido
Además siempre es recomendable, a la hora de trabajar con fechas que la zona horaria este establecida mediante date_default_timezone_set

Código PHP:
Ver original
  1. date_default_timezone_set('Europe/Madrid');
__________________
Unset($vida['malRollo']);

Última edición por xerifandtomas; 26/10/2016 a las 03:51

Etiquetas: calcular, fecha, registro, tabla, tiempo, transcurrido
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 07:23.