Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] calcular tiempo transcurrido

Estas en el tema de calcular tiempo transcurrido en el foro de PHP en Foros del Web. Hola amigos, Estoy intentando hacer una funcion que te calcule el numero de años que han pasado siempre y cuando el dia y el mes ...
  #1 (permalink)  
Antiguo 07/07/2014, 07:14
 
Fecha de Ingreso: febrero-2014
Mensajes: 99
Antigüedad: 10 años, 10 meses
Puntos: 0
calcular tiempo transcurrido

Hola amigos,
Estoy intentando hacer una funcion que te calcule el numero de años que han pasado siempre y cuando el dia y el mes (de la fecha vieja) sea el mismo que la fecha actual.

Por ejemplo:

Tengo 4 fechas

fecha actual -> 7-7-2014
fecha 1 -> 7-7-1989
fecha 2 -> 23-01-1998
fecha 3 -> 12-05-2003

Como el dia y el mes de la fecha actual coincide con la fecha 1, me calcularia los años que han pasado.

Lo tengo a medias.
Me calcula los años pero da igual que no coincidan las fechas. Necesito algo de ayuda.

Código PHP:
Ver original
  1. $fecha_actual = date("Y-m-d");
  2.  
  3. $fecha1 = date_create('1985-10-11');
  4. $fecha2 = date_create('2014-10-11');
  5.  
  6. $interval = date_diff($fecha1, $fecha2);
  7. echo $interval->format('%Y años');


saludos
Gracias :)


Con eso

Última edición por Triby; 07/07/2014 a las 18:00 Razón: Código en highlight
  #2 (permalink)  
Antiguo 07/07/2014, 18:06
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: calcular tiempo transcurrido

Primero deberías separar ambas fechas en año, mes y día, para comparar y, si son iguales, entonces calcular la diferencia.

Tal vez te sirva la función explode()
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 07/07/2014, 20:17
 
Fecha de Ingreso: febrero-2014
Mensajes: 99
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: calcular tiempo transcurrido

Segui tu consejo, y consegui hacerlo.
Igual se puede simplificar un poco, no lo se, como lo veis?
El valor que me devuelve es "04 años".
Me gustaria quitar el 0 de la izquierda.

Os dejo el codigo.

//separo el año, mes y dia
$fecha_actual = date("Y-m-d");
list($anio, $mes, $dia) = explode("-",$fecha_actual);

$fecha_vieja = "2010-07-08";
list($aniov, $mesv, $diav) = explode("-",$fecha_vieja);


if(($mes && $dia) == ($mesv && $diav)){

// si el dia y el mes coincide, resto los años

$datetime1 = date_create($fecha_vieja);
$datetime2 = date_create($fecha_actual);

$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%Y años');

}else {echo "No coinciden";
}

Saludos :)
Gracias
  #4 (permalink)  
Antiguo 07/07/2014, 20:32
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: calcular tiempo transcurrido

Revisa los formatos disponibles en interval->format(), seguramente hay una opción para evitar ceros a la izquierda; o, también sirve forzar a que el valor sea numérico, ya sea usando int(), val(), multiplicando por uno, etc.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 08/07/2014, 09:46
 
Fecha de Ingreso: febrero-2014
Mensajes: 99
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: calcular tiempo transcurrido

Si, tenias razon.
Estuve mirando y solamente con cambiar %Y -> %y ya se anulan los 0 a la izquierda

Saludos
Gracias

Etiquetas: calcular, fecha, tiempo, transcurrido
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:02.