Foros del Web » Programando para Internet » PHP »

Comparar fechas y Horas

Estas en el tema de Comparar fechas y Horas en el foro de PHP en Foros del Web. Hola. Estoy desarrollando un sistema, se trata de cursos, instructores. El Problema: Si un instructor ya tiene asignado una fecha de un curso, por ejemplo: ...
  #1 (permalink)  
Antiguo 10/01/2012, 12:29
Avatar de GABRIL  
Fecha de Ingreso: febrero-2007
Mensajes: 280
Antigüedad: 17 años, 2 meses
Puntos: 4
Comparar fechas y Horas

Hola.

Estoy desarrollando un sistema, se trata de cursos, instructores.

El Problema:

Si un instructor ya tiene asignado una fecha de un curso, por ejemplo: "27 de Junio del 2011 al 05 de Agosto del 2011", y con horario: "Lunes a Viernes de 15:00 a 19:00 Hrs.", y si se desea asignar otro curso, al mismo instructor, necesito validar que el nuevo horario no este dentro del rango de horas ya puesto antes (para evitar que un instructor de dos curso en el mismo horario). Esto es para el mismo control interno. Intento buscar una solucion pero no la encuentro, si alguien tiene alguna idea de como resolver esto le agradeceria de antemano.

Las tecnologias que uso del lado del servidor son: PHP, AJAX, MySQL.
Gracias y Saludos.
__________________
"La soberbia nunca baja de donde sube, pero siempre cae de donde subió"
Francisco De Quevedo
  #2 (permalink)  
Antiguo 10/01/2012, 12:40
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Comparar fechas y Horas

Como estas guardando las fechas en la base de datos? con que tipo?
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 10/01/2012, 12:50
Avatar de GABRIL  
Fecha de Ingreso: febrero-2007
Mensajes: 280
Antigüedad: 17 años, 2 meses
Puntos: 4
Respuesta: Comparar fechas y Horas

linuxzero, no se guardan en formato de fecha, por el momento, de hecho se guardan como string, porque los campos asi lo requieren:

por ejemplo

campo:

fech_prog_inicio_termino: 2 de Septiembre del 2011 al 24 de Octubre del 2011
horario_y_dias_semana: Lunes a Viernes de 14:00 a 18:00 Hrs.

es un hecho que debo transformar eso en fechas independientes, para luego poder validar que no se repita en un horario de curso, en la misma fecha de programacion.
O tienes alguna otra idea????

gracias.
__________________
"La soberbia nunca baja de donde sube, pero siempre cae de donde subió"
Francisco De Quevedo
  #4 (permalink)  
Antiguo 10/01/2012, 12:56
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Comparar fechas y Horas

Antes que nada van a tener que cambiar la forma de guardarlo en la base de datos, para poder utilizar la funcionalidad between de mysql para calcular rangos mas facil. Asi como esta actualmente no te va a ser facil calcularlo, si cabe la posibilidad te recomiendo que cambien la forma de almacenar la fecha.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #5 (permalink)  
Antiguo 10/01/2012, 13:11
Avatar de GABRIL  
Fecha de Ingreso: febrero-2007
Mensajes: 280
Antigüedad: 17 años, 2 meses
Puntos: 4
Respuesta: Comparar fechas y Horas

de hecho en ese proceso estoy, de cambiar ese dato string a formato date.
EL between de mysql es para obtener el rango de fechas, entre dos fechas distintas, mi pregunta, como le digo que me verfirique en esas fechas si ya existe un horario igual?? o un horario que choque con una ya existente.

es decir, si tengo que un instructor que dara un curso el: "22 de Junio del 2011 al 24 de Junio del 2011" (3 dias) con un horario de "Miércoles a Viernes de 09:00 a 14:00 Hrs. " (5 horas diarias, 15 horas duracion total del curso) y si el mismo instructor dara otro curso, como valido para que no se coloque un horario que se cruze con el del curso ya existente?? no se si me explique, saludos.
__________________
"La soberbia nunca baja de donde sube, pero siempre cae de donde subió"
Francisco De Quevedo
  #6 (permalink)  
Antiguo 10/01/2012, 13:23
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Comparar fechas y Horas

Pude que un curso empieze en la mitad de un dia laboral? porque si no puede iniciar en la mitad de un dia en curso entonces basta con validar las fechas solamente y te olvidas de las horas.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #7 (permalink)  
Antiguo 10/01/2012, 13:35
Avatar de GABRIL  
Fecha de Ingreso: febrero-2007
Mensajes: 280
Antigüedad: 17 años, 2 meses
Puntos: 4
Respuesta: Comparar fechas y Horas

Si se puede, un curso puede iniciar en cualquier dia de la semana, casi siempre inician los lunes, pero hay varios casos en que inicia a mediados de semana. Un instructor SI puede dar mas de 2 cursos, en la misma fecha, en diferentes horarios, un instructor NO puede dar 2 cursos, en la misma fecha, con el mismo horario...
Ayuda!!!..
__________________
"La soberbia nunca baja de donde sube, pero siempre cae de donde subió"
Francisco De Quevedo
  #8 (permalink)  
Antiguo 10/01/2012, 13:42
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Comparar fechas y Horas

Postea la estrcutura de las tablas asi se puede visualizar mejor a ver si le podemos encontrar la vuelta.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #9 (permalink)  
Antiguo 10/01/2012, 16:24
Avatar de xpapachox  
Fecha de Ingreso: junio-2011
Mensajes: 77
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Comparar fechas y Horas

Hola..
-Supongamos que tienes una tabla instructor como esta:

tbl_instructor:
-----------------
cod_instr nombre_intr
00001 Instructor1
00002 Instructor 2

-Ahora la tabla donde realizas el contrato del curso.. o nose como se llamara.
(supongamos que empieza hoy 10/01/2012 y termina en 2 meses 10/03/2012)ya que un contrato dura meses asi...

tbl_contrato
---------------
cod_contrato cod_instructor fecha_inicial fecha_termino
C0001 000001 10/01/2012 10/03/2012



-Ahora tenemos una tabla de detalle de dias por contrato.. muy importante..
(dia_contrato contendra los dias.. 1=lunes,2=martes y asi dependiendo de los dias en que se va a enseñar... en este caso será de lunes a viernes)
*hora_inicio y hora_termino sera el rango de horas que tendra x cada dia de la semana(lunes a viernes)


tbl_contrato_dias
------------------------
cod_contrato dia_contrato hora_inicio hora_termino
C0001 1 08:00 11:00
C0001 2 08:00 11:00
C0001 3 08:00 11:00
C0001 4 08:00 11:00
C0001 5 08:00 11:00


Por ultimo te dejare la tabla dias..

tbl_dias
-----------

cod_dias nom_dias
1 Lunes
2 Martes
3 Miercoles
4 Jueves
5 Viernes
6 Sabado
7 Domingo




Espero te sea de ayuda.. y puedas completar tu aplicacion...
:D

Etiquetas: horas, mysql
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:21.