JavaScript: Lista de tempo xerada dinámicamente

Depositphotos 27736851 s

Non son programador, pero podo programar bastante. Hoxe foi para un prototipo de interface onde xeraríamos dinámicamente unha lista despregable con tempos a intervalos de 5 minutos. Estes intervalos de tempo poden cambiar en función do día seleccionado (imaxina seleccionar unha data para devolver as horas para establecer unha cita ... cada día tería horarios diferentes dispoñibles).

En vez de ter que crear a lista manualmente, empregue algunhas técnicas de bucle con JavaScript para xerar a lista de forma dinámica. Simplemente coloque os horarios de "de" e "a" usando o reloxo de 24 horas e o guión fai o resto.

Dado que non son programador e a miña boa amiga, Ade Olonoh, é ... pedín a súa opinión sobre a miña función. Aquí está a súa versión limpa:

función getTime (de, a) {var select = ' '; var ampm = 'AM'; para (var hora = desde; hora> = ata; 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 + = ' '+ hour12 +': '+ min0 +' '; }} seleccionar + = ' '; document.getElementById ('lista de tempos'). innerHTML = select; }

Se non desexa rellenar un div de forma dinámica, pode simplemente facer un comando document.write, como:

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

Actualización: aquí tes outro exemplo no que podes establecer o intervalo en minutos

función getTime (de, a, int) {var select = ' '; var ampm = 'AM'; para (var hora = desde; hora> = ata; 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 + = ' '; retorno seleccionar; }

Aquí está o comando de escritura:

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

Gustaríame moito poder introducir horarios na función, como getTime (8:15 AM, 11:00 PM, 5). Algúns tomadores?

4 Comentarios

  1. 1
  2. 3
  3. 4

    Ola,

    Conseguiches inversar as comparacións. Aquí tes o código modificado que funcionou para min. Grazas 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 + ”;
    }
    }
    selecciona + = ”;
    retorno seleccionar;

¿Que pensas?

Este sitio usa Akismet para reducir o spam. Aprende a procesar os teus datos de comentarios.