Foros del Web » Programando para Internet » PHP »

Restando 2 fechas con PHP

Estas en el tema de Restando 2 fechas con PHP en el foro de PHP en Foros del Web. Gente muy buenas a todos en primer lugar gracias por los aportes hasta el momento aunque esta es la primera vez que escribo pidiendo ayuda ...
  #1 (permalink)  
Antiguo 15/04/2009, 11:51
 
Fecha de Ingreso: abril-2009
Mensajes: 1
Antigüedad: 15 años
Puntos: 0
Gente muy buenas a todos en primer lugar gracias por los aportes hasta el momento aunque esta es la primera vez que escribo pidiendo ayuda hace mucho tiempo que dependo de sus respuestas. Vamos al grano!
Estoy intentando restar dos fechas para sacar el tiempo (diferencia) entre ambas.
A continuacion le pego el codigo que estoy utilizando que se puede decir que funciona bastante bien pero hay un pequeño error que no logro descular y me quita el sueño....
El codigo es el sig:

<?php

$fecha = mktime(date("H"),date("i"),date("s"),date("m"),dat e("d"),date("Y"));

$altaP=strtotime('2009-04-13 10:00:38');
$diff=($fecha)-($altaP);

$seg=floor($diff%60);
$dias=floor($diff / (60 * 60 * 24)) ;
$Horas=floor($diff/ (60 * 60))%60;
$Min=floor($diff/ (60))%60;




echo "Fecha y Hora actual: ".date("d m Y H i s",$fecha)."<br> Fecha y Hora del pedido: ".date("d m Y H i s",$altaP)."<br>Diferencia: ".$dias." dias ".$Horas.":".$Min.":".$seg;


//esta parte se la agregue para hacer una prueba si quieren pueden ignorarla.
$diasT=0;
while($Horas >= 24)
{
$Horas=$Horas-24;
$diasT=$diasT+1;
}
//echo "<br>diast es: ".$diasT." y horas es: ".$Horas;



?>

el problema es que dependiendo del valor en $altaP (fecha y hora que le ponga) a veces el echo muestra el valor deseadado por ejemplo en pantalla muesta algo asi:

Fecha y Hora actual: 15 04 2009 14 42 55
Fecha y Hora del pedido: 12 04 2009 14 36 38
Diferencia: 3 dias 12:6:17
diast es: 0 y horas es: 12

pero dependiendo del valor... el echo me puede mostrar algo así:

Fecha y Hora actual: 15 04 2009 14 45 44
Fecha y Hora del pedido: 13 04 2009 10 36 38
Diferencia: 2 dias 52:9:6
diast es: 2 y horas es: 4

Es decir en lugar de poner 2 dias y 4 hora..... pone 2 dias y ademas muestra 52 hs blablabla.

Se entiende??? bueno si alguien con mas lucidez me puede decir en que parte del codigo la estoy pifiando se lo agradecere.

Muchas gracias de antemano.

Saludos.

Bueno creo que ya encontre cual era el problema no la veia y estaba a la vista... en lugar de %60 en horas hay que poner %24. .

Tema solucionado!!!!!! Seguramente a mas de uno le servira este scritp ya que hace bastante estaba buscando algo parecido.

Saludos.

pongo el codigo que me funciona OK. Por si alguno lo necesita.


Saludos.

<?php

$fecha = mktime(date("H"),date("i"),date("s"),date("m"),dat e("d"),date("Y"));

$altaP=strtotime('2009-04-13 16:46:38');
$diff=($fecha)-($altaP);

$seg=floor($diff%60);

$dias=floor($diff / (60 * 60 * 24)) ;
$Horas=floor($diff/ (60 * 60))%24;
$Min=floor($diff/ (60))%60;
//$dias=floor($seg (60 * 60 * 24)) ;




echo "Fecha y Hora actual: ".date("d m Y H i s",$fecha)."<br> Fecha y Hora del pedido: ".date("d m Y H i s",$altaP)."<br>Diferencia: ".$dias." dias ".$Horas.":".$Min.":".$seg;





?>

Última edición por GatorV; 16/04/2009 a las 11:54
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:50.