Código de PHP - Restar dos fechas en PHP

Imágen de perfil

Restar dos fechas en PHPgráfica de visualizaciones


PHP

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 01 de Noviembre del 2015 por xve
1.238 visualizaciones desde el 01 de Noviembre del 2015. Una media de 28 por semana
Este simple código muestra como restar dos fechas.

El proceso, es pasar las dos fechas a formato timestamp, restarlas, y calcular los años, meses y días entre las dos fechas.

Versión 1.0
estrellaestrellaestrellaestrellaestrella(1)

Actualizado el 03 de Noviembre del 2015 (Creado el 01 de Noviembre del 2015)gráfica de visualizaciones de la versión: Versión 1.0
1.239 visualizaciones desde el 01 de Noviembre del 2015. Una media de 28 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
 
$fechaInicial = '2012-10-16';
$fechaActual = date('Y-m-d'); // la fecha del ordenador
 
echo "<p>Diferencia entre la fecha ".$fechaInicial." la fecha ".$fechaActual."</p>";
 
// Obtenemos la diferencia en milisegundos
$diff = abs(strtotime($fechaActual) - strtotime($fechaInicial));
 
echo "</br> Años ";
echo $years = floor($diff / (365*60*60*24));
echo "</br> Meses ";
echo $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
echo "</br> Días ";
echo $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
echo "</br>";
 
?>



Comentarios sobre la versión: Versión 1.0 (1)

Imágen de perfil
Fernando
03 de Noviembre del 2015
estrellaestrellaestrellaestrellaestrella
Valoro malo el código porque quien se fíe de hacer los cálculos entre fechas de esta manera se llevará una sorpresa gorda y fea si esta en una zona horaria con cambio de hora (DST).

He publicado un ejemplo de cálculos de fechas que compara la manera tradicional (sumando y restando segundos a un timestamp) y la manera correcta: http://www.lawebdelprogramador.com/codigo/PHP/3329-Calculos-correctos-con-fechas.html

No es por ser pesado o prepotente... una mala programación en estos temas me dio hace un par de años un problema enorme que tuve que solucionar a toda prisa...

Saludos
Responder

Comentar la versión: Versión 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s3327