Как проверить введенное время между двумя указанными временами в JavaScript - PullRequest
0 голосов
/ 23 июня 2019

Я должен проверить время начала и время окончания, находится ли введенное значение в текстовом поле между заданным значением. Это работает, если время начала и время окончания находятся в один и тот же день, но если дата окончания отличается, тогда проверка не пройдена. Я видел много других ссылок на StackOverflow, но он не работает.

Как проверить, является ли один DateTime позже другого в javascript

Как сравнить две строки времени в формате ЧЧ: ММ: СС?

Как проверить, является ли один DateTime позже другого в javascript enter image description here

<html>
<script language="javascript">
    jQuery(document).on('change',".timepicker",function(){
var selectedTime = new Date("November 13, 2018 " + jQuery(this).val());
var startLimit = new Date("November 13, 2018 " + jQuery(this).data('starttime'));
var endLimit = new Date("November 13, 2018 " + jQuery(this).data('endtime'));
var start_time_val = new Date("November 13, 2018 " + $("input[name=start_time]").val());
var end_time_val = new Date("November 13, 2018 " + $("input[name=end_time]").val());
var elementName = jQuery(this).attr('name');
var valid = moment(jQuery(this).val(), "H:mm a", true).isValid();
var time = new Date("November 13, 2018 " + selectedTime);
jQuery(this).next('span.error').text('');
var error_msg = jQuery(this).data('erro_msg');


if(valid){
    if(elementName == 'start_time'){

        if(selectedTime >= startLimit && endLimit > selectedTime){

            console.log("selected Time less than start limit");
        }else{
            console.log("selected Time is less than start limit");
            jQuery(this).next('span.error').text(error_msg);
        }
    var endTimeSelected = jQuery(this).next('input').val();
    }else if(elementName == 'end_time'){


        if(selectedTime >= startLimit && endLimit > selectedTime){
        }else{
            jQuery(this).next('span.error').text(error_msg);
        }
        var endTimeSelected = jQuery(this).next('input').val();
    }else if(elementName == 'end_time'){
        if(selectedTime <= endLimit && selectedTime <= endLimit){

        }
        else{

            jQuery(this).next('span.error').text(error_msg);
        }

        var startTimeSelected = jQuery(this).prev('input.timepicker').val();
}
}else{
    jQuery(this).next('span.error').text(error_msg);
}

});
        </script>

<input type="text" name="start_time" value="6:15 AM" class="form-control timepicker" autocomplete="off" requried="1" data-starttime="6:00 AM" data-endtime="12:00 PM" data-erro_msg="Please select time between 6:00 AM-12:00 PM">

    <input type="text" name="end_time" value="7:15 AM" class="form-control timepicker" autocomplete="off" requried="1" data-starttime="6:00 AM" data-endtime="12:00 PM" data-erro_msg="Please select time between 6:00 AM-12:00 PM">
       </html>

1 Ответ

0 голосов
/ 23 июня 2019

Проблема с разбором. Date.parse() не читает дополнение am / pm. Вы можете использовать moment.js или разделить am / pm off и добавить 12 часов в pm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...