Jquery сравнить время начала и время окончания отображения NaN - PullRequest
0 голосов
/ 25 апреля 2018

Когда я пытаюсь сравнить время окончания, а не большее время начала, оно возвращается каждый раз, когда отображается NaN.

jQuery.validator.addMethod("checkTime", function(value, element, options) {

    var start_times = options.val(); #15:00
    var end_times = value;  #14:00
    var dtStart = new Date("1/1/2001 " + start_times);
    var dtEnd = new Date("1/1/2001 " + end_times);
    var difference_in_milliseconds = dtEnd - dtStart;
    console.log(difference_in_milliseconds);
    return difference_in_milliseconds > 0;
}, "End time should be grater than start time.");

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Вы можете сначала извлечь часы, минуты и секунды из start_times и end_times.А затем внесите изменения в функцию, как показано ниже:

jQuery.validator.addMethod("checkTime", function(value, element, options) {

var start_times = options.val();
var end_times = value;
var dtStart = new Date("1/1/2001");
dtStart.setHours('//Hours extracted from given start_times');
dtStart.setMinutes('//Minutes extracted from given start_times');
dtStart.setSeconds('//Seconds extracted from given start_times');

var dtEnd = new Date("1/1/2001");
dtEnd.setHours('//Hours extracted from given end_times ');
dtEnd.setMinutes('//Minutes extracted from given end_times ');
dtEnd.setSeconds('//Seconds extracted from given end_times '); 

var difference_in_milliseconds = dtEnd.getTime() - dtStart.getTime();
console.log(difference_in_milliseconds);
return difference_in_milliseconds > 0;
}, "End time should be grater than start time.");

Остальные вещи я сохранил как есть.

Вы можете попробовать это решение, возможно, оно будет работать для вас

0 голосов
/ 25 апреля 2018

Может быть, я что-то упустил (никогда не использовал ClockPicker, я подозреваю, что вы добавляете это число), но если вы делаете:

(new Date("1/1/2001 "+67)) - (new Date("1/1/2001 "+767))

Вы получаете NaN. Не лучше ли использовать:

var dtStart = Date.now() + start_times;
var dtEnd = Date.now() + end_times;

вместо

...