Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/11/2008, 11:23
Avatar de indy1508
indy1508
 
Fecha de Ingreso: mayo-2007
Ubicación: Monterrey, N.L. México.
Mensajes: 212
Antigüedad: 17 años, 6 meses
Puntos: 0
Pregunta Error en calculo entre fechas...

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.