Bueno Este codigo es para obtener los años meses y dias en los que una persona trabajo, por lo que se los comparto, realmente lo saque de este foro pero no recuerdo el nombre del usuario, solamente que el codigo de el era para calcular la edad, viene siendo parecido, bueno espero a mas de alguno le sirva
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;
}