Jump to content


Photo

Calcular el tiempo entre fechas


  • Please log in to reply
No replies to this topic

#1 vasquez

vasquez

    Member

  • Miembros
  • PipPip
  • 14 posts

Posted 26 December 2011 - 11:06 AM

Hola. Tengo el siguiente còdigo para calcular el tiempo entre dos fechas, pero se aplica para dos fechas dadas por paràmetro, tanto  $fechaInicio como $fechaActual  y necesito que la inicial sea una consultada a una base de datos y la final sea tomada del sistema al momento de ejecutar la consulta.

<?php
$fechaInicio ="31/02/1969"; 
$fechaActual = "26/12/2011"; 
$diaActual = substr($fechaActual, 0, 2); 
$mesActual = substr($fechaActual, 3, 5); 
$anioActual = substr($fechaActual, 6, 10); 
$diaInicio = substr($fechaInicio, 0, 2); 
$mesInicio = substr($fechaInicio, 3, 5); 
$anioInicio = substr($fechaInicio, 6, 10); 
$b = 0; 
$mes = $mesInicio-1; 
if($mes==2)

if(($anioActual%4==0 && $anioActual%100!=0) || $anioActual%400==0)

$b = 29; 
}
else

$b = 28; 


else if($mes<=7)

if($mes==0)

$b = 31; 

else if($mes%2==0){ 
$b = 30; 

else

$b = 31; 


else if($mes>7){ 
if($mes%2==0){ 
$b = 31; 

else

$b = 30; 


if(($anioInicio>$anioActual) || ($anioInicio==$anioActual && $mesInicio>$mesActual) || 
($anioInicio==$anioActual && $mesInicio == $mesActual && $diaInicio>$diaActual)){ 
echo "La fecha de inicio ha de ser anterior a la fecha Actual"; 
}
else

if($mesInicio <= $mesActual){ 
$anios = $anioActual - $anioInicio; 
if($diaInicio <= $diaActual){ 
$meses = $mesActual - $mesInicio; 
$dies = $diaActual - $diaInicio; 
}
else

if($mesActual == $mesInicio){ 
$anios = $anios - 1; 

$meses = ($mesActual - $mesInicio - 1 + 12) % 12; 
$dies = $b-($diaInicio-$diaActual); 

}else{ 
$anios = $anioActual - $anioInicio - 1; 
if($diaInicio > $diaActual){ 
$meses = $mesActual - $mesInicio -1 +12; 
$dies = $b - ($diaInicio-$diaActual); 
}
else

$meses = $mesActual - $mesInicio + 12; 
$dies = $diaActual - $diaInicio; 


echo "Años: ".$anios." <br />"; 
echo "Meses: ".$meses." <br />"; 
echo "Días: ".$dies." <br />"; 
}
exit;
?>

  • 0




IP.Board spam blocked by CleanTalk.