PHP - Seleccionar un rango de horas en un formulario

   
Vista:

Seleccionar un rango de horas en un formulario

Publicado por lol (18 intervenciones) el 08/07/2014 17:13:04
Buenas a todos.

Estoy creando un formulario php para guardar datos en una tabla sql y dos de los campos que tengo son: HORA INICIO y HORA FINAL.

La idea es que el usuario seleccione la "Hora de inicio" y la "Hora final" pero validando la hora... Por ejemplo si el usuario selecciona que la hora de inicio son las 10:00 no pueda seleccionar que la hora final son las 09:30, la hora final tiene que ser después de la hora de inicio no antes.

No se si se pueda con algún script... También estoy revisando jquery (datapicker) así que si alguien sabe como poder hacerlo lo agradeceria.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Seleccionar un rango de horas en un formulario

Publicado por xve (5512 intervenciones) el 08/07/2014 20:19:33
Hola Iol, para hacer esto con PHP, la manera que yo haria, es pasar las horas a minutos, sumarle los minutos y revisar que no sea superior a la hora anterior.

Entiendo que son horas de un mismo día? o pueden ser de diferentes días?

Si pueden intervenir diferentes fechas, la mejor manera que se me ocurre, es pasar la fecha y hora a timestamp para poder hacer la diferencia.


Coméntanos, y intento mostrarte como hacerlo, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Seleccionar un rango de horas en un formulario

Publicado por lol (18 intervenciones) el 08/07/2014 21:59:42
Hola xve, gracias por responder.

La hora de inicio y final son del mismo día no de diferentes...

quedo atento a comentarios.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Seleccionar un rango de horas en un formulario

Publicado por xve (5512 intervenciones) el 09/07/2014 09:10:32
Entonces, solo tienes que pasarlos a minutos y ahí hacer la diferencia...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$inicio="10:20";
$fin="16:30";
 
$inicioValores=explode(":",$inicio);
$inicioMinutos=$inicioValores[0]*60+$inicioValores[1];
$finValores=explode(":",$fin);
$finMinutos=$$finValores[0]*60+$$finValores[1];
 
if($inicioMinutos<$finMinutos)
{
	echo "La fecha inicial es inferior a la final";
}else{
	echo "La fecha final es superior a la inicial";
}
?>

De seguro que hay alguna forma mas rápida, pero es la que se me ha ocurrido...

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Seleccionar un rango de horas en un formulario

Publicado por lol (18 intervenciones) el 09/07/2014 17:52:59
Al final lo solucioné con un script que encontre en el foro "javascript". Aunque no he probado toda las instancias, hasta el momento me funciona.
Se los dejo por si les sirve:

1
2
3
4
5
6
7
8
9
10
11
12
<script>
function hora(){
var horaDesde = document.getElementById("inicio").value.replace(":", "0");
var horaHasta = document.getElementById("final").value.replace(":", "0");
	if (Date.parse(horaDesde)>Date.parse(horaHasta)){
		alert('¡La hora de término no puede ser anterior a la hora de inicio!');
		return 0;
	}else{
               document.formulario.submit();
	}
}
</script>

Saludos :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Seleccionar un rango de horas en un formulario

Publicado por xve (5512 intervenciones) el 09/07/2014 21:02:11
Hola Iol, la verdad es que entendí que querías hacerlo en PHP, ya que este foro es de PHP....

De todas maneras, aunque el PHP diga que es correcto, también es importante que lo valides en el PHP, ya que como sabes, el JavaScript puede ser alterado y lo que se envía una vez pasado por todo tu código también puede ser modificado.

Te agradezco que lo hayas comentado y compartido!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Seleccionar un rango de horas en un formulario

Publicado por lol (18 intervenciones) el 09/07/2014 22:12:42
Gracias a ti por tu ayuda xve, puede que esta vez me fuece más "cómodo" usar javascript pero ten por seguro que tu código php lo voy a probar en otras validaciones que tengo que hacer.

Saludos y gracias nuevamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar