如何编写条件块以检查所选时间是否介于 Timepicker 当前时间的 5 小时之间

How to write a condition block to check whether the selected time is in between of 5 hours of current time from the Timepicker

我需要 Timepicker 的解决方案。 我在 Javascript 中添加了一个时间选择器,现在用户可以 select 从下拉列表中选择时间, 但我想检查用户 select 编辑的时间是否在当前时间的 5 小时之间,否则 return 为假。让我与您分享我的代码。

$('.timepicker').timepicker({
    timeFormat: 'h:mm p',
    setTime: new Date(),
    "minTime": "" + hour + ":" + minute + "",
    dynamic: true,
    dropdown: true,
    scrollbar: true,
    change: countneartime
});
function countneartime(){
    var d = new Date();
    var month = d.getMonth()+1;
    var day = d.getDate();
    var output = (month<10 ? '0' : '') + month + '/' +
    (day<10 ? '0' : '') + day + '/'+ d.getFullYear()  ;
    var pickup = $(".start-date").val();
    if(output == pickup){
        // write code to check condition if user selected time within 5 hours of upcoming

    }
}

如果用户 selected 时间在当前时间的即将到来的 5 小时内,我想 return false。 请帮助我

var d1 = new Date();
d1.setHours(d1.getHours() + 4); //upcoming 5 hours 
var d2 = new Date($(".start-date").val());
var d3 = new Date(); //current time
var d1msecs = new Date(d1).getTime(); // get milliseconds
var d2msecs = new Date(d2).getTime(); // get milliseconds
var d3msecs = new Date(d3).getTime(); // get milliseconds

if(d1msecs <= d2msecs && d2msecs >= d3msecs)
{
   return false;
}

尝试以下操作:

let hour = 12,
  minute = 0;
$('.timepicker').timepicker({
  timeFormat: 'h:mm p',
  "minTime": "" + hour + ":" + minute + "",
  dynamic: true,
  dropdown: true,
  scrollbar: true,
  change: countneartime
});

function countneartime(val) {
  var selected = new Date(val);
  var fiveHoursLater = new Date(0, 0, 0, new Date().getHours() + 5, new Date().getMinutes(), new Date().getSeconds());
  console.log(fiveHoursLater.getTime() > selected.getTime());
}
.as-console-wrapper {
  max-height: 40px !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.js"></script>

<input class="timepicker" />