Foros del Web » Programando para Internet » PHP »

restar fechas

Estas en el tema de restar fechas en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/08/2006, 02:21
 
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?
  #2 (permalink)  
Antiguo 07/08/2006, 14:13
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 17 años, 11 meses
Puntos: 3
Hola
Buenas Tardes.

A mis pocos conocimientos empezare a decirte algo, los duros te seguiran diciendo.

pregunto:
En que tipo de campo estas guardando esa fecha, debo decirte que si es un timestam el time unix empieza su conteo a partir del 31/12/1969 a las 20:00:01 pm para ser más exacto.

creo que tampoco lo podras lograr usando la funcion date.

He visto en varios sitios que el día, mes y año lo dan por campos separados.

A mi modo de ver has de hacerlo así usando la función getdate.

http://www.php.net/manual/es/function.getdate.php

PD:Espero que me corrigan si estoy en algun error para no dar respuestas falsas
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:53.