Mirando por internet ya tal al final he llegado a la conclusión de hacer esta clase que la publico aquí porque puede que sea de utilidad para alguien.
Está recien creada y la he probado, para ser una clase más completa habría que hacer el control del formato de la fecha en vez de estar separado por "/" si está por "-" o por espacios o puntos o lo que sea y generar una excepción... pero bueno... ahi va el código. Tambien es posible que por ahi exista una clase bastante mejor, pero esta es la mia xD
Ya se que el constructor y el destructor de la clase sobra por el momento pero.. estoy pensando que más métodos utilizar. Si me dais sugerencias las iré agregando.
fechas.class.php
Código PHP:
<?
class fechas
{
function __construct()
{
}
function diferencia_dias($primera, $segunda)
{
$fecha1=$this->separarfecha($primera);
$fecha2=$this->separarfecha($segunda);
$inicio = mktime(0,0,0,$fecha1['mes'],$fecha1['dia'],$fecha1['ano']) ;
$fin = mktime (0,0,0,$fecha2['mes'],$fecha2['dia'],$fecha2['ano']) ;
$resultado = $fin - $inicio ;
$resultado = $resultado / 60 / 60 / 24 ;
return $resultado;
}
function dias_hoy($fecha)
{
$fecha1=$this->separarfecha($fecha);
$inicio = mktime(0,0,0,$fecha1['mes'],$fecha1['dia'],$fecha1['ano']) ;
$fin = mktime (0,0,0,date("m"),date("d"),date("y")) ;
$resultado = $fin - $inicio ;
$resultado = $resultado / 60 / 60 / 24 ;
return $resultado;
}
function separarfecha($date)
{
if (count($datebits=explode('/',$date))!=3) return false;
$dia = intval($datebits[0]);
$mes = intval($datebits[1]);
$ano = intval($datebits[2]);
return array('dia' => $dia,'mes' => $mes,'ano' => $ano);
}
function __destruct()
{
}
}
?>
fechas.php
Código PHP:
<?
include("fechas.class.php");
$obj=new fechas();
$dias=$obj->diferencia_dias("25/11/2005","25/11/2005");
echo $dias;
echo "<br><br><br>";
$dias=$obj->dias_hoy("25/11/2005");
echo $dias;
?>
Un saludo.