Я пытаюсь создать пользовательский фильтр в Javascript, я пытаюсь вернуть true / match два временных диапазона, отформатированные в миллисекундном формате getTime (). Первый диапазон времени от объекта. Второй временной интервал взят из пользовательского ввода, указывающего время для фильтрации. В настоящее время мой код совпадает, когда второй временной диапазон попадает между минимальным и максимальным значениями первого временного диапазона, но я бы хотел, чтобы он совпадал, если есть какое-либо перекрытие между временными диапазонами вообще.
JS:
var filter_from = new Date();
filter_from.setHours(this.availability_from.split(/:/)[0]);
filter_from.setMinutes(this.availability_from.split(/:/)[1]);
filter_from = filter_from.getTime();
var filter_to = new Date();
filter_to.setHours(this.availability_from.split(/:/)[0]);
filter_to.setMinutes(this.availability_from.split(/:/)[1]);
filter_to = filter_to.getTime();
var a_from = new Date();
a_from.setHours((hits[i].availability.split("-")[0]).split(":")[0]);
a_from.setMinutes((hits[i].availability.split("-")[0]).split(":")[1]);
a_from = a_from.getTime();
var a_to = new Date();
a_to.setHours((hits[i].availability.split("-")[1]).split(":")[0])
a_to.setMinutes((hits[i].availability.split("-")[1]).split(":")[1])
a_to = a_to.getTime();
if (Math.min(filter_from, filter_to) <= Math.max(a_from, a_to) && Math.max(filter_from, filter_to) >= Math.min(a_from, a_to)) {
console.log("matched");
}
Любая помощь была бы удивительной, это меня смущает, спасибо! :)