Ver Mensaje Individual
  #7 (permalink)  
Antiguo 01/06/2011, 16:25
Avatar de gysato
gysato
 
Fecha de Ingreso: junio-2010
Ubicación: Tuxtla Gtz, Chiapas
Mensajes: 88
Antigüedad: 14 años, 5 meses
Puntos: 9
Respuesta: problema con validacion de horios php

Cita:
Iniciado por Potro Ver Mensaje
Bueno aqui la cosa es validat una fecha completa supongo ya que puedo tener dos cursos de 8 a 10 am pero 1 el 1 de junio y el otro el 2 de junio..

no solo validar horas..

Bueno esto yo una ves lo hice y se me ocurrio algo muy facil, maneje las horas como horas militares..

ejemplo

las 13:30 horas obvio en hora militar seria las 1330 solo se quitan lo : bueno con esto yo puedo hacer rapida mente mis validaciones ejemplo

si tengo un curso el 1/06/2011 14:00 a 16:00 ***** que es lo que hago primero valido si ya hay cursos en ese dia::


Código SQL:
Ver original
  1. SELECT COUNT(*) AS Total FROM tbl_trabajorealizado
  2. WHERE YEAR(dt_FechaTrabajo) = "2010" AND MONTH(dt_FechaTrabajo) = "07" AND DAY(dt_FechaTrabajo) = "31"

Si el resultado es 0 pues no hago mas validaciones pongo el curso a la hora seleccionada ya que todo el dia esta vacio..


Bueno que pasa si me sale 1 o mas..

Ahi empiezo a obtener la hora de inicio como hora fin de cada registro de ese dia y empiezo a validar..


Yo hago lo siguiente:::


obtengo mis resultados y hago validaciones

Código PHP:
Ver original
  1. //horas del curso que quieren ingresar
  2. $Hi = $_GET['HI'];
  3. $Hf = $_GET['HF'];
  4.  
  5. //recorset de mis registros del dia
  6. while($row = mysql_fetch_array($SQL)){
  7.            
  8.                                 //Obtengo la hora ini y hora fin de cada registro    
  9.                 $HoraIni = $row['HI'];
  10.                 $HoraFin = $row['HF']; 
  11.                
  12.                                 ///Comparo
  13.                 if($Hi < $HoraIni && $Hf <= $HoraIni){
  14.                     //Si cumple no sumo nada
  15.                                          $coincide = $coincide+0;
  16.                 }elseif($Hi >= $HoraFin && $Hf > $HoraFin){
  17.                     //Si cumple no sumo nada
  18.                     $coincide = $coincide+0;
  19.                 }else{
  20.                                         //Si no cumple alguna de las dos anteriores entonces sumo 1 a las coincidencias
  21.                     $coincide = $coincide+1;
  22.                 }
  23.            
  24.             }



Al ultimo comparo la variable $coincide si es 0 entonces puede entrar el nuevo registro si es 1 o mayor obvio no entra y muestro mensaje de duplicidad de horario..



saludos..

Efectivo Potro pero a eso me referia con mas complejo jeje... Claro que lo de la fecha estara comprobándose a la hora de checar si existe ya el ID del horario en otro simple AND.

Saludos