Estoy intentando crear un código para que de forma automática indique la diferencia de tiempo entre una fecha y la actual. Por ejemplo:
Si la diferencia es menor a 1 mes que muestre los días. "dias"
Si es igual a un mes que muestre "mes"
Si es >= a 2 y menor o <= 12 que muestre "meses"
Y si es superior a 12 meses pero igual a un año, que muestre "año"
Y si es superior a un año que muestre "años"
Os pongo el código que tengo hecho, pero me falla en años que marca 0 mes.
Alguien podría ayudarme con esto.
Muchas gracias,
Código PHP:
<?php
//Calcular fechas
function calcular_fecha($fecha){
$fecha_select = new DateTime(date('Y/m/d',strtotime($fecha))); // Creo un objeto DateTime de la fecha ingresada
$fecha_hoy = new DateTime(date('Y/m/d',time())); // Creo un objeto DateTime de la fecha de hoy
// La funcion ayuda a calcular la diferencia, esto seria un objeto
$Actual = date_diff($fecha_hoy,$fecha_select);
return $Actual;
}
function dias_totales($fecha_i)
{
$dias = (strtotime($fecha_i)-time())/86400;
$dias = abs($dias); $dias = floor($dias);
return $dias;
}
$Edad = calcular_fecha('1972-11-20');
$Experiencia = calcular_fecha('2002-10-20');
$Laboral = calcular_fecha('1990-02-01');
//Cambiar las dos fechas de $Actual y Actualdays para automatizar
$Actual = calcular_fecha('2016-01-08');
$Actualmes = $Actual->format('%m');
$Actualdays = dias_totales('2016-01-08');
?>
<html>
<?php
if ($Actualdays <= 30) {
echo $Actualdays." días";
} elseif ($Actualmes <= 1){
echo $Actual->format('%m')." mes";
} elseif ($Actualmes >= 2 && $Actualmes <= 12){
echo $Actual->format('%m')." meses";
} elseif ($Actualdays > 365){
echo $Actual->format('%Y')." años";
}
?>
</html>