Foros del Web » Programando para Internet » PHP »

Comparación entre fechas

Estas en el tema de Comparación entre fechas en el foro de PHP en Foros del Web. Hola a todos, estoy realizando un buscador de noticias para mi web. Ya está casi listo pero hay un detalle que se me resiste: las ...
  #1 (permalink)  
Antiguo 17/12/2005, 06:00
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 21 años, 1 mes
Puntos: 0
Comparación entre fechas

Hola a todos, estoy realizando un buscador de noticias para mi web. Ya está casi listo pero hay un detalle que se me resiste: las fechas.

Resulta que he especificado en el formulario de búsqueda que se pueda buscar por mes y año de este modo:
Código HTML:
<select name="mes"><option value="01">Enero</option><option value="02">Febrero</option><option value="03">Marzo</option><option value="04">Abril</option><option value="05">Mayo</option><option value="06">Junio</option><option value="07">Julio</option><option value="08">Agosto</option><option value="09">Septiembre</option><option value="10">Octubre</option><option value="11">Noviembre</option><option value="12">Diciembre</option></select>&nbsp;<select name="annio"><? $year = date(Y); for($cont=2005;$cont<$year;$cont++) ; { echo "<option value='".$cont."'>".$cont."</option>";?><? } ?></select> 
De este modo se recoge un mes y un año que va desde el 2005 (fecha de la primera noticia) hasta el año en el que estemos.

Ahora va lo complicado, yo guardo las fechas en un campo VARCHAR llamado fecha con
Código PHP:
time(); 
Y pretendo que si el mes y año sean iguales a un mes y año de la base de datos, me muestren las noticias de ese mes y año. Por ejemplo, si elijo Mayo - 2005 sería 05 - 2005, pues que si en fecha hay noticias de entre el 1 y el 31 de mayo del 2005, que se muestren (como mostrarlas y todo lo demás está hecho, lo único que necesito saber es como hacer la comparación entre fechas).

He probado con:
Código PHP:
WHERE strtotime(fecha) == strtotime('2005-11-21'
Código PHP:
WHERE fecha == '2005-11-21' 
Pero no me aclaro con los parámetros que hay que usar...

Agradecería cualquier tipo de ayuda, muchas gracias y saludos ;)

EDIT: Muchas gracias, es justo lo que buscaba ;)

Última edición por Gryphus; 17/12/2005 a las 12:05
  #2 (permalink)  
Antiguo 17/12/2005, 09:46
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 4 meses
Puntos: 34
Podes usar month( FROM_UNIXTIME(1134834283) ). De esta manera podrías hacer algo como:
select * from tabla where month( FROM_UNIXTIME( campofecha ) ) = '". $mes ."' and year( FROM_UNIXTIME( campofecha ) ) = '". $anio ."'.


PD1: Si vas a usar un timestamp es mejor guardarlo en un campo timestamp, o mismo en un int de 11 que ocupa menos que un varchar y sobra para tal fin.

PD: Si la finalidad de la fecha esa será el filtro, o es su mayor desempeño, el hacerlo de esta manera, yo trataría la fecha por separado (en un campo mes otro año), haciendo mas óptimo el query.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
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 02:17.