Foros del Web » Programando para Internet » PHP »

Mostrar por rango de fechas

Estas en el tema de Mostrar por rango de fechas en el foro de PHP en Foros del Web. Hola gente, estoy con un problema. Necesito levantar una muestra de productos dependiendo su vigencia. Osea, un rango entre una fecha de inicio y una ...
  #1 (permalink)  
Antiguo 06/06/2014, 10:50
 
Fecha de Ingreso: mayo-2009
Mensajes: 166
Antigüedad: 14 años, 10 meses
Puntos: 2
Mostrar por rango de fechas

Hola gente, estoy con un problema. Necesito levantar una muestra de productos dependiendo su vigencia. Osea, un rango entre una fecha de inicio y una fecha final.
Si el inicio es igual o mayor a hoy y la finalización igual o menor a la fecha de hoy deberia mostrar los cupones de ese rango:

$hoy = date('Y-m-d');
$LlamadoCuponesDestacados = mysql_query('SELECT * FROM cupones WHERE cupon_destacado = "destacado" AND inicio >= '.$hoy.' AND finalizacion <= '.$hoy.' ORDER BY rand() LIMIT 10');

También probé con un if que me parece mejor tambien en algunos cazos pero nada.

if (($cupon['inicio'] >= $hoy) && ($cupon['finalizacion'] <= $hoy)){

muestra cupon

}

pero nada.


Alguien que pueda ayudarme?
  #2 (permalink)  
Antiguo 06/06/2014, 10:59
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: Mostrar por rango de fechas

Si vas a comparar fechas, mejor utiliza el operador BETWEEN, aunque el resultado será el mismo que si comparas con el mayor o igual que/menor o igual que.

Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE fecha BETWEEN '$inicio' AND '$fin'

Ojo, asegúrate de envolver las fechas con comillas simples.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 06/06/2014, 11:00
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Mostrar por rango de fechas

Bueno.. si pides que sea MAYOR E IGUAL .. y tambien (AND) MENOR E IGUAL tienes un problemama porque solo lo satisface la igualdad (=)

Tambien revisa el formato de la fecha si es compatible con MySQL


EDIT: tambien puedes usar BETWEEN como te dice Alexis88 pero reflexiona sobre el error logico de la desigualdad que te menciono mas arriba
__________________
Salu2!
  #4 (permalink)  
Antiguo 06/06/2014, 11:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mostrar por rango de fechas

¿Que la oferta empiece después de hoy, y termine antes de hoy?
Eso sí que no tiene sentido..
Estas seguro de lo que dices?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 06/06/2014, 11:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 166
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Mostrar por rango de fechas

no, solo necesito que las muestre si entre la fecha de inicio y la fecha del final el día de hoy se encuentra en ese rango.

Uso DATE en la DB el código sería AAAA-MM-DD
  #6 (permalink)  
Antiguo 06/06/2014, 11:11
 
Fecha de Ingreso: mayo-2009
Mensajes: 166
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Mostrar por rango de fechas

Cita:
Iniciado por Alexis88 Ver Mensaje
Si vas a comparar fechas, mejor utiliza el operador BETWEEN, aunque el resultado será el mismo que si comparas con el mayor o igual que/menor o igual que.

Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE fecha BETWEEN '$inicio' AND '$fin'

Ojo, asegúrate de envolver las fechas con comillas simples.

Saludos

Pero si yo pido eso debo hacer una llamada antes que me indique la fecha de inicio y la de finalización y luego meter el día de hoy como rango?
  #7 (permalink)  
Antiguo 06/06/2014, 11:20
 
Fecha de Ingreso: mayo-2009
Mensajes: 166
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Mostrar por rango de fechas

nada, no sale, y con el if?
  #8 (permalink)  
Antiguo 06/06/2014, 11:32
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: Mostrar por rango de fechas

Si solamente vas a buscar por la fecha de hoy, no es necesario utilizar rangos.

Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE fecha = CURDATE()

Lee lo que te dijo gnzsoloyo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 06/06/2014, 11:33
 
Fecha de Ingreso: mayo-2009
Mensajes: 166
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Mostrar por rango de fechas

Lo resolví con un if:

$hoy = date('Ymd');
$inicia = str_replace('-', '', $destacado['inicio']);
$finaliza = str_replace('-', '', $destacado['finalizacion']);
if (($hoy >= $inicia) && ($hoy <= $finaliza)){
  #10 (permalink)  
Antiguo 06/06/2014, 11:37
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: Mostrar por rango de fechas

¿Y no era más sencillo así?

Código PHP:
Ver original
  1. if (date('Y-m-d') >= $destacado['inicio'] && date('Y-m-d') <= $destacado['finalizacion'])
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 06/06/2014, 11:38
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Mostrar por rango de fechas

Cita:
Iniciado por Alexis88 Ver Mensaje
Lee lo que te dijo gnzsoloyo
Si ... lo que dice gnzsoloyo

Sigo en modo invisible
__________________
Salu2!
  #12 (permalink)  
Antiguo 06/06/2014, 11:39
 
Fecha de Ingreso: mayo-2009
Mensajes: 166
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Mostrar por rango de fechas

Si, pero pensé que por los guiones podría no funcionar. Funciona igual asi?
  #13 (permalink)  
Antiguo 06/06/2014, 11:41
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Mostrar por rango de fechas

Me siento un stealth


__________________
Salu2!
  #14 (permalink)  
Antiguo 06/06/2014, 11:41
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: Mostrar por rango de fechas

Cita:
Iniciado por rakshaka Ver Mensaje
Funciona igual asi?
Prueba y lo sabrás.

Italico76, lo decía por lo que menciona sobre la comparación que rakshaka está haciendo, no por ignorarte.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #15 (permalink)  
Antiguo 06/06/2014, 11:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 166
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Mostrar por rango de fechas

Mil gracias chicos, con el if lo resolví re bien! Genios!
  #16 (permalink)  
Antiguo 06/06/2014, 12:06
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Mostrar por rango de fechas

Cita:
Iniciado por Alexis88 Ver Mensaje
Italico76, lo decía por lo que menciona sobre la comparación que rakshaka está haciendo, no por ignorarte.
Cita:
Iniciado por Italico76 Ver Mensaje
Bueno.. si pides que sea MAYOR E IGUAL .. y tambien (AND) MENOR E IGUAL tienes un problemama porque solo lo satisface la igualdad (=)
Sigo sin entender entonces... hablo en ruso ?

Mas sencillito... dije esto:

Cita:
SI (X<=B) AND (X>=A)

=>

X=A=B
@Alexis88, @gnzsoloyo y @rakshaka : en serio no entienden eso que dije ?
__________________
Salu2!
  #17 (permalink)  
Antiguo 06/06/2014, 12:22
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: Mostrar por rango de fechas

Amigo, creo que debes de calmarte un poco, apagar la computadora y salir a respirar un poco de aire fresco para relajarte, te noto algo alterado. No eres el primero ni el último usuario de quien no toman en cuenta sus opiniones, particularmente me ha pasado muchas veces pero no me lo tomo tan a pecho, al fin y al cabo, estoy acá por colaborar, no por puntos y mucho menos por dinero pues acá la retribución está en la satisfacción de haber ayudado a otros, aunque no tomen en cuenta tu opinión. ¿Quieres que te confiese algo?, estaba jugando un torneo de póquer mientras respondía a este hilo (quedé en segundo lugar), por eso no leí todo lo que escribieron ustedes, excepto lo de gnzsoloyo, que fue muy breve, lo suficiente como para alcanzar a leer mientras esperaba la siguiente ronda de cartas.

Por cierto, estuvo claro lo que dijiste.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #18 (permalink)  
Antiguo 06/06/2014, 12:26
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Mostrar por rango de fechas

@Alexis88 : espero al menos hayas ganado la ronda

Pues.. creo la gripa me dejo algo sensible gracias por hacermelo saber
__________________
Salu2!

Etiquetas: fecha, mysql, rango, select
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:27.