Javascript DateTimePicker-禁用一天中已经过的时间(JQuery)

Javascript DateTimePicker-禁用一天中已经过的时间(JQuery),javascript,jquery,datetime,datetimepicker,Javascript,Jquery,Datetime,Datetimepicker,我目前正在将XDSoft DateTimePicker()JQuery集成到我的网站中,并希望禁用已过的时间。目前,如果我选择今天,那么我仍然可以选择一个已经过去的时间 我尝试使用minTime:0,但这也会禁用sunsequence天的时间。我希望能够选择一个开始和结束时间(例如,上午9点到下午5点30分),我可以使用mintime和max time进行选择,但我无法禁用今天已经过的时间 以下是我的脚本: <script> jQuery('#datetimepicker3'

我目前正在将XDSoft DateTimePicker()JQuery集成到我的网站中,并希望禁用已过的时间。目前,如果我选择今天,那么我仍然可以选择一个已经过去的时间

我尝试使用minTime:0,但这也会禁用sunsequence天的时间。我希望能够选择一个开始和结束时间(例如,上午9点到下午5点30分),我可以使用mintime和max time进行选择,但我无法禁用今天已经过的时间

以下是我的脚本:

<script>
    jQuery('#datetimepicker3').datetimepicker({
        minDate: 0,
        step: 60,
        minTime: '09:00',
        maxTime: '17:30',
        todayButton: true,
        format: 'd.m.Y H:i',
        inline: true,
        lang: 'en'

    });</script>

jQuery(“#datetimepicker3”).datetimepicker({
minDate:0,
步骤:60,
minTime:'09:00',
maxTime:'17:30',
今天巴顿:是的,
格式:“d.m.Y H:i”,
是的,
朗:“恩”
});
是将minTime设置为0也将禁用随后几天的时间。您需要根据日期更改minTime选项。如果是今天,minTime将保持不变,否则minTime将设置为false

$(“#元素”).datetimepicker({格式:'Y-m-DH:i',minDate:0,minTime:0,onSelectDate:function(ct){
var dtob=新日期(),
当前日期=dtob.getDate(),
当前月份=dtob.getMonth()+1,
当前_year=dtob.getFullYear();
//今天的日期
var完整日期=当前年份+'-'+
(本月<10?'0'+本月:本月)+'-'+
(当前日期<10?'0'+当前日期:当前日期);
//将今天的日期与选择的日期进行比较
如果(ct.dateFormat('Y-m-d')==完整日期)
this.setOptions({minTime:0});
其他的
this.setOptions({minTime:false});
} 
});

如果有人被绊倒,试试这个

$( function() {
var checkPastTime = function(inputDateTime) {
  if (typeof(inputDateTime) != "undefined" && inputDateTime !== null) {
      var current = new Date();
      if (inputDateTime.getFullYear() < current.getFullYear()) {
          $('.datetimepicker').datetimepicker('reset');
          alert("Sorry! Past date time not allow.");
      } else if ((inputDateTime.getFullYear() == current.getFullYear()) && (inputDateTime.getMonth() < current.getMonth())) {
          $('.datetimepicker').datetimepicker('reset');
          alert("Sorry! Past date time not allow.");
      }
      if (inputDateTime.getDate() == current.getDate()) {
          if (inputDateTime.getHours() < current.getHours()) {
              $('.datetimepicker').datetimepicker('reset');
          }
          this.setOptions({
              minTime: current.getHours() + ':00' //here pass current time hour
          });
      } else {
          this.setOptions({
              minTime: false
          });
      }
  }
};
var currentYear = new Date();
$('.datetimepicker').datetimepicker({
    format:'Y-m-d H:i',
    minDate : 0,
    yearStart : currentYear.getFullYear(), // Start value for current Year selector
    onChangeDateTime:checkPastTime,
    onShow:checkPastTime
});
$(函数(){
var checkPastTime=函数(inputDateTime){
if(typeof(inputDateTime)!=“未定义”&&inputDateTime!==null){
var current=新日期();
如果(inputDateTime.getFullYear()
}))

学分:


您可以对插件提供的
onShow()
事件处理程序应用限制。这容易实现吗?这取决于具体情况。您肯定需要一些脚本。请尝试:不确定是否可以使用此插件
$( function() {
var checkPastTime = function(inputDateTime) {
  if (typeof(inputDateTime) != "undefined" && inputDateTime !== null) {
      var current = new Date();
      if (inputDateTime.getFullYear() < current.getFullYear()) {
          $('.datetimepicker').datetimepicker('reset');
          alert("Sorry! Past date time not allow.");
      } else if ((inputDateTime.getFullYear() == current.getFullYear()) && (inputDateTime.getMonth() < current.getMonth())) {
          $('.datetimepicker').datetimepicker('reset');
          alert("Sorry! Past date time not allow.");
      }
      if (inputDateTime.getDate() == current.getDate()) {
          if (inputDateTime.getHours() < current.getHours()) {
              $('.datetimepicker').datetimepicker('reset');
          }
          this.setOptions({
              minTime: current.getHours() + ':00' //here pass current time hour
          });
      } else {
          this.setOptions({
              minTime: false
          });
      }
  }
};
var currentYear = new Date();
$('.datetimepicker').datetimepicker({
    format:'Y-m-d H:i',
    minDate : 0,
    yearStart : currentYear.getFullYear(), // Start value for current Year selector
    onChangeDateTime:checkPastTime,
    onShow:checkPastTime
});