automatizar formato de fecha
Publicado por jose (71 intervenciones) el 20/01/2018 06:30:54
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,
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,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?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>
Valora esta pregunta


0