Cuando intentamos saber la diferencia de días en PHP a veces tenemos que crear scripts donde obtengamos nosotros la cuenta de los días, o bien, pasar a tiempo máquina y hacer los cálculos.

Sea como sea, si solo queremos obtener el numero de días que ha pasado de una fecha a otra, podemos usar una función muy sencilla llamada gregoriantojd.

Con esta función podremos convertir una fecha del malisimo calendario gregoriano y convertirlo a la fecha juliana que es la perfecta que pudiéramos adoptar. De ahí se hace la operación y con ello obtenemos el numero de días que hay de diferencia entre ambas fechas.
Hay que aclarar que solo es para los días, es decir, que con esto no buscamos una exactitud entre horas minutos, etc.
Ejemplo
<?php
$dias = gregoriantojd("01", "01", "2012") - gregoriantojd("01", "12", "2012");

echo "{$dias} dias";
?>
Resultado: 12 dias

Las fechas deben ir en formato Mes. Día y Año.

 

En función puede quedar de esta manera
/**
* @vars RECIBIENDO LA FECHA EN FORMATO DD-MM-AAAA
*/
public static function difDias($fechaI, $fechaF){
	try {
		
		$f1 = explode("-", $fechaF);
		$f2 = explode("-", $fechaI);

		return gregoriantojd(intval($f1[1]), intval($f1[0]), intval($f1[2])) - gregoriantojd(intval($f2[1]), intval($f2[0]), intval($f2[2]));
			
	} catch (Exception $e){
		throw new Exception($e->getMessage(), 1);
	}
}

 


angelinux

Desarrollador de páginas web desde el año 2000 y con experiencia en programación de sistemas para empresas desde el 2008; cofundador de CONSoluciones; autor del blog de software libre “Angelinux-slack”; docente en maestría en UPAV y fundador de la distribución Linux Falco que está en desarrollo para la Universidad Veracruzana. Además, ponente, organizador de congreso, laborista social, impartidor de cursos de programación y servidores Linux, webmaster, y ex invitado en programa de televisión.

0 Comentarios

Deja un comentario