Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/01/2018, 02:17
joserodriguezan
 
Fecha de Ingreso: noviembre-2013
Ubicación: Barcelona
Mensajes: 33
Antigüedad: 10 años, 5 meses
Puntos: 0
automatizar formato de fecha

Buenos días a todos,

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 >= && $Actualmes <= 12){

    echo 
$Actual->format('%m')." meses";

 

    }    elseif (
$Actualdays 365){

    echo 
$Actual->format('%Y')." años";

}

 

?>

 

</html>