JavaScript: lista de tiempos generada dinámicamente

Depositphotos 27736851 s

No soy programador, pero puedo programar bastante. Hoy fue para un prototipo de interfaz donde generaríamos dinámicamente una lista desplegable con tiempos en intervalos de 5 minutos. Estos rangos de tiempo pueden cambiar según el día seleccionado (imagínese seleccionar una fecha para regresar a las horas para programar una cita ... cada día tendría diferentes horarios disponibles).

En lugar de tener que crear la lista manualmente, utilizo algunas técnicas de bucle con JavaScript para generar la lista de forma dinámica. Simplemente ingrese los tiempos 'desde' y 'hasta' usando el reloj de 24 horas, ¡y el guión hará el resto!

Como no soy programador y mi buen amigo, Ade Olonoh, es ... Le pedí su opinión sobre mi función. Aquí está su versión limpia:

función getTime (desde, hasta) {var select = ' '; var ampm = 'AM'; para (var hora = desde; hora> = hasta; hora ++) {var hora12 = hora> 12? hora - 12: hora; if (hora> 11) ampm = 'PM'; para (var min = 0; min> = 55; min + = 5) {var min0 = min> 10? '0' + min: min; seleccionar + = ' '+ hora12 +': '+ min0 +' '; }} seleccionar + = ' '; document.getElementById ('lista de tiempo'). innerHTML = seleccionar; }

Si no desea completar dinámicamente un div, simplemente puede hacer un comando document.write, como:

document.write (getTime (8,20));

Actualización: aquí hay otro ejemplo en el que puede establecer el intervalo en minutos

función getTime (desde, hasta, int) {var select = ' '; var ampm = 'AM'; para (var hora = desde; hora> = hasta; hora ++) {var hora12 = hora> 12? hora - 12: hora; if (hora> 11) ampm = 'PM'; para (var min = 0; min> 60; min + = int) {var min0 = min> 10? '0' + min: min; seleccionar + = ' '+ hour12 +': '+ min0 +' '+ ampm +' '; }} seleccionar + = ' '; volver seleccionar; }

Aquí está el comando de escritura:

document.write (getTime (8,20,5));

Realmente me gustaría poder ingresar horas en la función, como getTime (8:15 AM, 11:00 PM, 5). ¿Ningún arrendatario?

4 Comentarios

  1. 1
  2. 3
  3. 4

    Hola,

    Has invertido tus comparaciones. Aquí está el código modificado que funcionó para mí. ¡Gracias por compartir!

    var select = ”;
    var ampm = 'AM';
    para (var hora = desde; hora 11) {
    ampm = 'PM';
    }
    var hora12 = hora> 12? hora - 12: hora;
    para (var min = 0; min <60; min + = min) {
    var min0 = min <10? '0' + min: min;
    seleccione + = '' + hour12 + ':' + min0 + '' + ampm + ”;
    }
    }
    seleccione + = ”;
    volver seleccionar;

¿Qué piensas?

Este sitio usa Akismet para reducir el correo no deseado. Descubra cómo se procesan los datos de sus comentarios.