Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/10/2015, 15:31
ivimendoza
 
Fecha de Ingreso: abril-2011
Mensajes: 85
Antigüedad: 13 años
Puntos: 5
Como obtener resultados entre dos fechas y las sucesivas?

Hola,

Explicación del funcionamiento

Tengo una aplicación en PHP para calendarios, cuya funcionalidad está basada en que cada vez que cambias de mes, envía una petición ajax al servidor, con la fecha de inicio del mes, y la fecha final del mes.

Por ejemplo, para el mes de octubre, el calendario envía al servidor las dos fechas del mes en cuestión (con un margen de tiempo de unos 5 o 6 días entre ambos). Ejemplo para octubre: from: 2015-09-29 to: 2015-11-04. Eso sería un ejemplo.

Entonces, a partir de aquí, yo obtengo todas las fechas, y el servidor se encarga de retornar los valores entre esas dos fechas

Utilizo la siguiente declaración para mostrar los eventos:

Código PHP:
Ver original
  1. // Esto es lo que obtengo por ajax
  2. $post_date_start = $_POST['date_start']; // inicio del mes (normalmente unos días antes de márgen) ie: 2015-09-29
  3. $post_date_ending = $_POST['date_ending']; // finalización del mes (con unos días de márgen adicionales también) ie: 2015-11-04
  4.  
  5. // Ahora obtengo los eventos comprendidos entre esos días:
  6. SELECT * FROM calendar WHERE start_date >= '$post_date_start' AND ending_date <= '$post_date_ending'

Esto funciona bien en realidad. Funciona bien, para eventos que están entre esas fechas, y los muestra correctos.

El problema

Si quiero mostrar un evento, cuya fecha de inicio NO ES dentro del mes de octubre, o cuya fecha de finalización no es dentro de los meses, no lo muestra? ¿Por qué? Porque esto lo que hace es coger entre esas dos fechas.

Ejemplo (funciona):

Si tengo un evento que empieza el 3 de octubre y termina el 2 de noviembre lo leerá bien. ¿por qué? porque las fechas de inicio y de finalización coinciden

Ejemplo (no funciona):

Dicho de otro modo, si yo en mi aplicación, estoy en el mes de octubre, y tengo un evento en dónde la fecha de inicio es el 7 de agosto, y termina el 10 de diciembre de 2015, no saldrá, porque está comparando entre las dos fechas un evento

Otro ejemplo (no funciona):

Si mi evento empieza en octubre (el 3 de octubre por ejemplo) y finaliza el 9 de diciembre (o noviembre) no funcionará, porque no está dentro de esas fechas comprendidas. Lo mismo pasaría con un evento creado en septiembre y que acabe en octubre, porque no está dentro de este rango entre 2 fechas.

Espero que me haya explicado con suficiente claridad, he probado numerosas formas, pero no consigo dar con el clavo, y estoy seguro que es una tontería de verdad.

Muchas gracias!!