Jquery сравнить время начала и время окончания отображения NaN
Когда я пытаюсь сравнить время окончания, а не большее время начала, он возвращается каждый раз, когда отображается 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 ответа
Вы можете извлечь часы, минуты и секунды из 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.");
Остальные вещи я сохранил как есть.
Вы можете попробовать это решение, может быть, оно будет работать для вас
Может быть, я что-то упустил (никогда не использовал 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;
вместо?