Yo quiero validar la hora de inicio y hora de finalización seleccionada utilizando timepicker que está en formato de 12 horas. La hora de finalización debe ser mayor que el tiempo de inicio. He utilizado un if declaración, pero cuando la prueba es el uso de valores tales como la 8:00 de la mañana como hora de inicio y de 1:00 PM hora de finalización, que no está funcionando. ¿Qué puedo hacer para resolver este problema. Por favor alguien que me ayude con esto. Estoy atascado con este desde ayer. Quiero tan sólo tiempo ,me no necesitas fecha.

$("#dateTimeAddButton").click(function () 
{       
    var Date=$('#myDatePickerId').val()
    var startTime = $('#i').val();   
    var endTime   = $('#i1').val();    
    if (startTime > endTime) 
    {
        alert('End time always greater then start time.');
    }
});
  • Mostrar el código. donde es usted if declaración?
  • he añadido mi código.
  • usted puede utilizar las 24 horas de formato de hora. Esto va a resolver el problema de la comparación.
  • No puedo utilizar las 24 horas de formato de hora.Necesito 12 hr en sí.
  • Yo no sufro cuando estoy usando localeCompare. ¿Hay alguna otra manera?
InformationsquelleAutor Midhun | 2012-12-27

2 Comentarios

  1. 3

    Convertir primero a la más baja confesional (minuto). Luego se compara.

    st = minFromMidnight(startTime);
    et = minFromMidnight(endTime);
    if(st>et){
        alert("End time must be greater than start time");
    }
    
    function minFromMidnight(tm){
     var ampm= tm.substr(-2)
     var clk = tm.substr(0, 5);
     var m  = parseInt(clk.match(/\d+$/)[0], 10);
     var h  = parseInt(clk.match(/^\d+/)[0], 10);
     h += (ampm.match(/pm/i))? 12: 0;
     return h*60+m;
    }
    • Yo no sufro cuando estoy usando localeCompare. ¿Hay alguna otra manera?
    • usted no está consiguiendo qué?
    • mi resultado requerido
    • Ya lo tengo..muchas gracias..que fue una gran ayuda….
    • He actualizado a un algoritmo más eficiente. Es mejor que localeCompare solución
    • Muchas gracias.. me gustaría saber la lógica detrás de el código..nunca he usado la localeCompare función.Puede u me acaba de dar una breve idea sobre el código que te han dado? lo siento si te estoy pidiendo más de ti.
    • La función minFromMidnight convertir una cadena de hora como 08:01 PM a un número de minutos después de la Medianoche. Para 08:01 PM va a ser 1201 minutos. 08=8*60, 1=1*1, PM=12*60. De ahí su 1201. A continuación, sólo se compara este número.
    • kk.thnx mucho..i hv para buscar en él para obtener más detalles..de todos modos muchas gracias por tu ayuda..
    • este minFromMidnight() la función es comparar la hora de inicio y fin de tiempo de 24 horas o formato de 12 horas formato plz decir?

  2. 0

    por favor, pruebe que a continuación el código en caso de que usted tiene la longitud de tiempo de más de 6 char como las 10:00am en lugar de 9:00am va a tirar error de código de arriba.

    Me hizo cambios menores en el código de arriba y funcionó como un encanto para mí.

    JS:

    $('#btnSubmit').on('click', function () {
               
                var startTime = $('#txtJobStartTime').val();
                var endTime = $('#txtJobEndTime').val();
               
                var st = minFromMidnight(startTime);
                var et = minFromMidnight(endTime);
                if (st > et) {
                    alert('End time always greater then start time.');
                    return false;
                }
    
                function minFromMidnight(tm) {
                    var ampm = tm.substr(-2);
                    var clk;
                    if (tm.length <= 6) {
                        clk = tm.substr(0, 4);
                    } else {
                        clk = tm.substr(0, 5);
                    }
                    var m = parseInt(clk.match(/\d+$/)[0], 10);
                    var h = parseInt(clk.match(/^\d+/)[0], 10);
                    h += (ampm.match(/pm/i)) ? 12 : 0;
                    return h * 60 + m;
                }
            });

Dejar respuesta

Please enter your comment!
Please enter your name here