saludos desde Honduras!
Código PHP:
//**********************************************
// TRAEMOS LOS DATOS DEL OBJETO Y LO METEMOS EN UN VARIABLE
//**********************************************
//los objetos txtfecha1, y txtfecha2 ustedes los defines ok :D
$fechaInicio= explode("/", $_POST["txtFecha1"]);
$fechaSalida= explode("/", $_POST["txtFecha2"]);
//**********************************************
// PASAMOS LOS DATOS A VARIABLES SEPARADAS Y
// Y TRATAMOS LA VARIABLE CONO UN ARREGLO
//**********************************************
//Restamos los dias , meses y años de la siguiente manera
$Dias= $fechaSalida[0] - $fechaInicio[0];
$Meses= $fechaSalida[1] - $fechaInicio[1];
$Anios= $fechaSalida[2] - $fechaInicio[2];
//**********************************************
// ACONTINUACION SE HACEN LAS VALIDACIONES
//**********************************************
//Hacemos un cliclo if con los dias, esto lo hacemos pensado en
//los dias,meses,años negativos que nos daran al hacer las restas
if ($Dias < 0) {
--$Meses;
switch ($fechaSalida[1]) {
case 1: $Dias_Mes_Anterior=31; break;
case 2: $Dias_Mes_Anterior=31; break;
case 3:
if (bisiesto($fechaSalida[3])) //bisiesto es una funcion que se encuentra al final del codigo
{
$Dias_Mes_Anterior=29; break;
}
else
{
$Dias_Mes_Anterior=28; break;
}
case 4: $Dias_Mes_Anterior=31; break;
case 5: $Dias_Mes_Anterior=30; break;
case 6: $Dias_Mes_Anterior=31; break;
case 7: $Dias_Mes_Anterior=30; break;
case 8: $Dias_Mes_Anterior=31; break;
case 9: $Dias_Mes_Anterior=31; break;
case 10: $Dias_Mes_Anterior=30; break;
case 11: $Dias_Mes_Anterior=31; break;
case 12: $Dias_Mes_Anterior=30; break;
}
$Dias= $Dias + $Dias_Mes_Anterior;
}
if ($Meses <0) {
--$Anios;
$Meses= $Meses + 12;
}
echo "$Anios años - $Meses meses y $Dias dias";
function bisiesto($Anio_Salida){
$bisiesto=false;
//probamos si el mes de febrero del año actual tiene 29 días
if (checkdate(2,29,$Anio_Salida))
{
$bisiesto=true;
}
return $bisiesto;
}