![]() |
Validacion de Horas en un formulario Estimados.... Estoy realizando un formulario donde se piden 2 horas y estas las debo guardar en una base de datos mysql..... lo que necesito saber es si existe una funcion en php que valide de alguna forma el formulario y si existe una mascara donde se indique si es pm o am..... ojo. con respecto a lo ultimo debe ser de fecha local.... por cuanto no debo utilizar javascript mil gracias. Frank |
Cita:
Hayarás muchos temas de validación de formularios si buscas en el foro. Lo común es verificar que ciertos datos hayas sido llenados, para ello simplemente te vales de la función empty(): Código PHP: Cita:
De ser así no hay forma de saberlo más que trabajes en un formato de 24 hrs. Ve que para PHP solo recibes una cadena y, debido a la naturaleza del dato (que lo inserta el usuario) no "representa mayor cosa". Así que "2:00" puede ser tanto AM como PM, en cambio manejando "14:00" tú ya podrás saber que se "refiere a PM".... ¿ó es que acaso dicho dato sí tiene alguna relación con el horario de servidor??; vele hechando un ojo a la función date() en ese caso. Saludos! :adios: |
jam realmente no me expresé adecuadamente..... lo que necesito es un script tipo digital, donde se seleccione una hora desde - hasta, y que se valide que la segunda no sea menor a la primera, se puede hacer con <select> pero preferiria que el select de la hora final solo deslieguehoras posteriores a las seleccionadas en el <select> de la hora inicial Conoces de alguna rutina que haga esto ? Gracias Frank |
Resolví parcialmente con la class datetimeclass.inc include("datetimeclass.inc"); $timeinic = new TIMEINIC(); $timefina = new TIMEFINA(); $timeinic->set_datetime_byglobal("HTTP_POST_VARS"); $timefina->set_datetime_byglobal("HTTP_POST_VARS"); y en el select <tr> <td width='35%'><font color='#006633'><b>»</b></font> Hora de Salida : </td><td>"; echo $timeinic->get_select_hours(1, 12, "hora")."<b>:</b>"; echo $timeinic->get_select_minutes(1, "min")."<b>:</b>"; echo $timeinic->get_select_ampm(); echo "</td> </tr> <tr> <td width='35%'><font color='#006633'><b>»</b></font> Hora de Llegada : </td><td>"; echo $timefina->get_select_hours(1, 12, "hora")."<b>:</b>"; echo $timefina->get_select_minutes(1, "min")."<b>:</b>"; echo $timefina->get_select_ampm(); echo "</td> </tr> dentro de datetimeclass.inc defini timeinic y timefina y en current_names entre una y otra le cambié el nombre a las variables del array Solo queda hacer la comparacion de las horas para que la segunda sea posterior a la inicial Saludos y gracias, Frank |
Cita:
¿Hasta qué punto tienes?, ¿solo lo de la impresión de los listbox?, ¿cómo se realiza??... sería bueno igual un enlace para poder verlo y partir de ahí mismo. Paz! :adios: |
Hola.... La puedes conseguir en .....http://www.phpclasses.org/browse/package/798.html tiene dos ejemplos.... la puedes descargar y probarla Lo que estoy viendo es... una vez grabados los valores en un BD como manipularlos... es decir... asignar el valor de las horas a una variable y tranferirla a las variables de la clase para poder re-editarla en un form saludos.... Frank |
Con este class la mejor forma es redefinir las variables include("datetimeclass.inc"); $datetimei = new DATETIME(); $datetimei->set_timename("h_inic", "m_inic", "s_inic","p_inic"); $datetimei->set_datetime_byglobal("HTTP_POST_VARS"); $datetimef = new DATETIME(); $datetimef->set_timename("h_fin", "m_fin", "s_fin","p_fin"); $datetimef->set_datetime_byglobal("HTTP_POST_VARS"); para poder hacer en el form <form name="testdate" method="post" action="example.phtml"> <p><b>test form:</b> <p> <? echo $datetimei->get_select_hours(1, 12, "hora")."<b>:</b>"; echo $datetimei->get_select_minutes(1, "min")."<b>:</b>"; echo $datetimei->get_select_ampm(); echo '<br><br>'; echo $datetimef->get_select_hours(1, 12, "hora")."<b>:</b>"; echo $datetimef->get_select_minutes(1, "min")."<b>:</b>"; echo $datetimef->get_select_ampm(); echo '<br><br>'; echo "<b>Usted ingreso fecha inicial----> ".$datetimei->get_time_entered(); echo '<br><br>'; echo "<b>Usted ingreso fecha final----> ".$datetimef->get_time_entered(); ?> <br><br> <input type="submit" value="Let's GO" name="go"> </form> frank |
para grabar la variable a una base de dato mysql se debe definir la variable como time() y se graba desde $t_ini=$timeinic->get_time_entered(); $t_fin=$timefina->get_time_entered(); mysql_query("INSERT INTO BD (fecha_inicio.fecha_fin) values ('$t_ini','$t_fin')"); y listo..... Si se quiere actualizar el dato utilizando la clase se debe, en primera nstancia leer la base de datos y asignar la variable leida a los campos de la funcion set_date_bycomponents .... así $resp = mysql_query("SELECT * FROM BD where 'condicion'"); $datos = mysql_fetch_array($resp); $f_ini = explode(":",$datos['sal_time']); $f_fin = explode(":",$datos['des_time']); $timeinic->set_datetime_bycomponents('','','',$f_ini[0],$f_ini[1],'00',''); $timefina->set_datetime_bycomponents('','','',$f_fin[0],$f_fin[1],'00',''); y luego se utiliza el form Saludos... Frank :arriba: |
jam.... este es el topico que te mencione saludos. frank |
| La zona horaria es GMT -6. Ahora son las 07:26. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.