Calcular la diferencia entre dos fechas

El otro día haciendo una web de gestión me encontré en la tesitura de calcular la diferencia entre dos fechas para presentar mensajes de alerta según el caso.

Para ello utilicé un script bastante sencillo y simple que paso a compartir y comentar con todos vosotros:

<?
$fecha = date('2015-06-22');
$segundos = strtotime('now') - strtotime($fecha);
$diferencia = intval($segundos/60/60/24);
echo "Los dias entre ".$fecha." y hoy es <b>" . $diferencia . "</b>";
?>

Como vemos lo primero que hacemos es crear un objeto date en la variable fecha, luego utilizamos strotime que nos devuelve la cantidad de segundos transcurridos desde el 1 de enero de 1970, de este modo se pueden comparar las dos fechas obteniendo las diferencia en segundos.

A continuación utilizamos la función intval donde dividimos los segundos entre 60 para que nos de los minutos, luego las horas y luego entre 24 para que nos de los días.

Hay que considerar que siempre los servidores tienen las mismas horas y fechas  que esperamos por lo que puede ser que haya que calibrar este código para que funcione. Por ejemplo; si nuestro servidor va una hora atrasado (algo bastante común aunque no lo parezca) pues deberíamos de sumar a nuestra fecha actual 3600 que son los segundos que tiene una hora.

Otro “incoveniente” es que en 2030 el contador de segundos dará la vuelta y entonces habrá que rediseñar este script dándole una vuelta antes y sumando por ejemplo o utilizar otros métodos… pero 2030 queda aun muy lejos… (mirada al efecto 2000)