Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/08/2006, 02:21
leeann
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 1 mes
Puntos: 1
restar fechas

Hola! Tengo una página donde puedes buscar a la gente por su edad en los siguientes intervalos:
18-20
20-25
25-30
30-35
35-40
40-50
50-90

En la base de datos guardo la fecha de nacimiento de cada persona, por lo que para buscar a la persona con esa edad, le resto al dia de hoy los años del intervalo. Para hacer esto tengo lo siguiente:

Código PHP:
   //saco las edades del intervalo a variables:
    
$edad_fin=(substr($edad,0,2));//ej:20
    
$edad_ini=(substr($edad,3,2));//ej:18
    
//resto los años
    
$resta_ini strtotime("-$edad_ini year");
    
$fecha_inidate("d m Y"$resta_ini);//linea 48

    
$resta_fin strtotime("-$edad_fin year");
    
$fecha_findate("d m Y"$resta_fin);//linea 51 
y luego en la consulta pongo : fechaNac between '$fecha_ini' and '$fecha_fin'

Pues si selecciono alguno de los primeros intervalos me lo hace bien, pero si selecciono los intervalos a partir de 35-40 me empieza a dar error:
Warning: unexpected error in date() in c:\apache\htdocs\pagina\buscar.php on line 48
y si selecciono el intervalo 40-45 me sale el mismo error en la 48 y en la 51

Porque en las restas con años inferiores no me sale ese error y en las otras si?
Hay alguna manera de restar años sin que de error?

También lo hice de la siguiente manera:
Código PHP:
$nueva mktime(0,0,0$mes,$dia,$año) + $numdias 24 60 60;
        
$nuevafecha=date("Y-m-d",$nueva); 
y me ocurria lo mismo. Alguna idea?