Foros del Web » Programando para Internet » PHP »

Como calculo esto?

Estas en el tema de Como calculo esto? en el foro de PHP en Foros del Web. Tenga la fecha inicial='2005-02-01 10:00' y tengo la fecha final='2005-02-02 13:00' Pero el dato fecha inicial lo tengo q caprturar de mi tabla y el ...
  #1 (permalink)  
Antiguo 02/02/2007, 18:04
Avatar de fenix_ikki  
Fecha de Ingreso: mayo-2004
Mensajes: 25
Antigüedad: 19 años, 11 meses
Puntos: 0
Como calculo esto?

Tenga la fecha inicial='2005-02-01 10:00'
y tengo la fecha final='2005-02-02 13:00'

Pero el dato fecha inicial lo tengo q caprturar de mi tabla y el final se ingresa automaticamente

Lo que kiero es calcular el tiempo transcurrido entre esas 2 valores y colocarlo en dentro de un update

Algo asi

Update set Fecha_fin='2005-02-02 13:00', tiempo_transcurrido=?, ....

Como puedo hacer el proceso completo
  #2 (permalink)  
Antiguo 02/02/2007, 18:36
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Re: Como calculo esto?

La fecha actual se consigue con la función time()

Código PHP:
$fecha_final time(); 
Y la fecha inicial la coges de la base de datos...

Código PHP:
$fecha_inicial $fila['fecha_inicial']; 
Como esta fecha está escrita en formato YYYY-mm-dd HH:ss, es decir, 2005-02-01 10:00, interesa pasarlo a "tiempo" para trabajar con ello. (Se trabaja con tiempo UNIX, busca sobre ello para más información.)

Esto se consigue con la función strtotime() (string to time)

Código PHP:
$fecha_inicial strtotime($fecha_inicial); 
Ahora que ya tenemos las dos fechas (final e inicial) en tiempo UNIX (segundos transcurridos desde 1 de Enero de 1970) podemos hacer la resta, y obtener los segundos que diferencian uno de otro.

Código PHP:
$transcurrido $fecha_final $fecha_inicial
Ahora ya en la variable $transcurrido tienes el número de segundos que han pasado entre una fecha y la otra. Para pasarlo a minutos, horas, días, etc. ya sabes... divides por 60, por 24, o el cálculo necesario.

Todo junto:
Código PHP:
//Fecha final, se calcula la ACTUAL con time()
$fecha_final time();

//Conectas a la base de datos y haces todo lo q corresponda para extraer el dato
$fecha_inicial $fila['fecha_inicial'];

//Pasas la fecha a tiempo UNIX
$fecha_inicial strtotime($fecha_inicial);

//Segundos entre una fecha y otra
$transcurrido $fecha_final $fecha_inicial;

//Y por si quieres ponerlo en UNO de estos tiempos...
$minutos_transcurridos $transcurrido/60;
$horas_transcurridas $minutos_transcurridos/60;
$dias_transcurridos $horas_transcurridas/24
Suerte.
  #3 (permalink)  
Antiguo 02/02/2007, 18:40
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Re: Como calculo esto?

Utiliza la función mktime()

Recuerda que debes pasarle Hora Minuto Segundo

Parece que te falta uno de esos...
  #4 (permalink)  
Antiguo 02/02/2007, 19:18
Avatar de fenix_ikki  
Fecha de Ingreso: mayo-2004
Mensajes: 25
Antigüedad: 19 años, 11 meses
Puntos: 0
Re: Como calculo esto?

Si esto lo kisiera hacer con el timediff? se puede hacer eso defrente? mediante un select utilizando el timediff directamente. Si es asi como podria hacerlo
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 08:14.