No estaba contento con ninguno de los selectores de tiempo sugeridos, así que creé el mío propio inspirándome en las especificaciones de Perifer y HTML5:
http://github.com/gregersrygg/jquery.timeInput
Puede usar los nuevos atributos html5 para la entrada de tiempo (paso, mínimo, máximo) o usar un objeto de opciones:
<input type="time" name="myTime" class="time-mm-hh" min="9:00" max="18:00" step="1800" />
<input type="time" name="myTime2" class="time-mm-hh" />
<script type="text/javascript">
$("input[name='myTime']").timeInput();
$("input[name='myTime2']").timeInput({min: "6:00", max: "15:00", step: 900});
</script>
Valida una entrada como esta:
- Inserte ":" si falta
- ¿Hora no válida? Reemplazar con blanco
- ¿No es una hora válida según el paso? Redondea hacia arriba / hacia abajo al paso más cercano
La especificación HTML5 no permite am / pm o sintaxis de hora localizada, por lo que solo permite el formato hh: mm. Se permiten segundos de acuerdo con las especificaciones, pero aún no lo he implementado.
Es muy "alfa", por lo que puede haber algunos errores. No dude en enviarme parches / solicitudes de extracción. Probar manualmente en IE 6 y 8, FF, Chrome y Opera (el último estable en Linux para los últimos).