Foros del Web » Programando para Internet » PHP »

Hora posterior en un formulario

Estas en el tema de Hora posterior en un formulario en el foro de PHP en Foros del Web. Buenas, estoy aquí intentando hacer un script con la intención de que cuando yo en un formulario introduzca una hora en un input de tipo ...
  #1 (permalink)  
Antiguo 04/12/2012, 23:13
 
Fecha de Ingreso: noviembre-2012
Mensajes: 184
Antigüedad: 11 años, 5 meses
Puntos: 0
Hora posterior en un formulario

Buenas,
estoy aquí intentando hacer un script con la intención de que cuando yo en un formulario introduzca una hora en un input de tipo time (que será una hora de inicio) en otro input (que será la hora de fin) el valor de este ultimo sea la hora de inicio mas 30 minutos. He intentado hacer lo siguiente pero debe tener fallos:

<script languaje="javascript">
function hora (form)
{
var hora = form.ini_grupo.value;
var x1 = hora.substring(0,2);
var x2 = hora.substring(2,5);
x2 = x2 + 30;
if(x2>60)
{
x2=x2-60;
x1++;
}
var h = x1.toString() + ":" + x2.toString();
form.fin_grupo.value = h;
}
</script>

Lo que intento buscar con esto es que cuando un usuario introduzca una hora la hora de fin sea siempre posterior.
Si a alguien se le ocurre otra forma de realizar esto que intento me sería bastante util.
Los inputs son los siguientes:

<b>Hora de inicio:</b>
<br>
<input type="time" name="ini_grupo" value="12:00" onfocus="hora(this.form)" required>
<br>
<b>Hora de finalizacion:</b>
<br>
<input type="time" name="fin_grupo" required>

*Nota: el codigo es javascript pero mi aplicación esta escrita en php.
Un saludo y gracias!
  #2 (permalink)  
Antiguo 05/12/2012, 04:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Hora posterior en un formulario

Es una pregunta de javascript, aun que estes en un proyecto php deberías preguntar en javascript....

Así funciona

Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>Documento sin t&iacute;tulo</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <script languaje="javascript">
  5. function hora (form)
  6. {
  7. var hora = form.ini_grupo.value;
  8. var arhora=hora.split(":")
  9. arhora[1] = parseInt(arhora[1],10) + 30;
  10. arhora[0]=parseInt(arhora[0],10);
  11. if(arhora[1]>60)
  12. {
  13. arhora[1]=arhora[1]-60;
  14. arhora[0]++;
  15. }
  16. var h = arhora[0].toString() + ":" + arhora[1].toString();
  17. form.fin_grupo.value = h;
  18. }
  19. </head>
  20.  
  21. <b>Hora de inicio:</b>
  22. <br>
  23. <input type="time" name="ini_grupo" value="12:00" onfocus="hora(this.form)" onBlur="hora(this.form)" required>
  24. <br>
  25. <b>Hora de finalizacion:</b>
  26. <br>
  27. <input type="time" name="fin_grupo" required>
  28. </form>
  29. </body>
  30. </html>

Deberias controlar que lo que entren en el primer imput tenga forma de hora, si los minutos son menos de 10 deberías agregar el cero a la izquierda.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 05/12/2012 a las 04:26
  #3 (permalink)  
Antiguo 05/12/2012, 04:34
 
Fecha de Ingreso: julio-2009
Mensajes: 118
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Hora posterior en un formulario

pues si usas php yo lo aria así:
Código PHP:
Ver original
  1. <?php  
  2. $hora = date("H:i:s");
  3. ?>
y a la variable de los minutos pues le sumo 30 y hago las comparaciones pertinentes de si pasan a ser mas de 60 pues aria minutos = a 0 y hora le sumo 1 y ya. espero esto sea lo que nesecites.

Etiquetas: formulario, usuarios
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 08:14.