Hola a todos:
Tengo un pequeño proiblema con una funcion que calcula el número de años entre dos fechas, la cuestión es que de forma local trabaja bien, hace el calculo y arroja el total de años entre las fechas bien, pero al subir la función al servidor ya no calcula bien, si el segundo parametro es menor al año 1970 el resultado me pone -2 y lo suma al otro calculo de la primera fecha, obviamente la cantidad de años es erronea.
Los valores que estoy ocupando son: fecha1 4/11/2008 fecha2 19/10/1939
Esto me arroja una diferencia de 69 años de forma local pero en el servidor la diferencia es de 38 años.
Aqui les muestro el código:
Código PHP:
function resta_fecha($f1,$f2)
{
ereg( "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $f1, $mifecha);
$lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1];
ereg( "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $f2, $mifecha2);
$lafecha2=$mifecha2[3]."-".$mifecha2[2]."-".$mifecha2[1];
echo 'fecha1 de entrada: '.$f1."<BR>";
echo 'fecha2 de entrada: '.$f2."<BR>";
echo 'dia1: '.$mifecha[1]."<BR>";
echo 'mes1: '.$mifecha[2]."<BR>";
echo 'año1: '.$mifecha[3]."<BR>";
echo 'dia2: '.$mifecha2[1]."<BR>";
echo 'mes2: '.$mifecha2[2]."<BR>";
echo 'año2: '.$mifecha2[3]."<BR>";
echo 'fecha1: '.$lafecha."<BR>";
echo 'fecha2: '.$lafecha2."<BR>";
$epoch_1 = mktime(date(H),date(i),0,$mifecha[2],$mifecha[1],$mifecha[3]);
$epoch_2 = mktime(date(H),date(i),0,$mifecha2[2],$mifecha2[1],$mifecha2[3]);
echo 'epoch1: '.$epoch_1."<BR>";
echo 'epoch2: '.$epoch_2."<BR>";
$diff_seconds = $epoch_1 - $epoch_2;
echo 'dif de segundos: '.$diff_seconds.' entre: 31556952<BR>';
$x=$diff_seconds/31556952;
echo 'total: '.$x."<BR>";
return $x;
}
Saludos.