【问题标题】:Disable datepicker past date & time禁用日期选择器过去的日期和时间
【发布时间】:2015-11-01 21:35:57
【问题描述】:

我正在使用 datepicker,我喜欢人们无法选择今天之前的日期和时间。我使用“minDate:0”来禁用过去的日期,但有没有办法禁用过去的时间。例如,如果当前时间是凌晨 5 点,我不希望人们选择同一天的凌晨 3 点或 4 点。

这是我的代码:

var dt;
dt = 
$('#datetimepicker3').datetimepicker({
    inline:true,
    minDate: 0,
    format:'m/d/Y H:i',
    formatDate:'d/m/Y'
});

【问题讨论】:

标签: jquery datepicker jquery-ui-datepicker uidatepicker


【解决方案1】:

声明dateToday变量并使用Date()函数设置它。 然后使用该变量分配给minDate,这是datepicker的参数。

var dateToday = new Date(); 
$(function() {
    $( "#datetimepicker3" ).datepicker({
        numberOfMonths: 3,
        showButtonPanel: true,
        minDate: dateToday
    });
});

【讨论】:

  • 嗨 madhu,基本上minDate: 0 已经禁用了过去的日期。但它不会禁用过去的时间。例如,如果当前时间是凌晨 5 点,我什至喜欢禁用同一天的凌晨 4 点。 :)
  • 是的,它正确禁用了日期。如何禁用过去的时间?
【解决方案2】:

要禁用过去的日期,您需要像这样定义最小到今天的日期:-

$('.datepicker').pickadate({
        min: new Date()
    });

【讨论】:

    【解决方案3】:

    您应该像这样将minDate 值声明为dateToday

    var dt; 
    dt = 
    $('#datetimepicker3').datetimepicker({
        inline:true,
        minDate: dateToday,
        format:'m/d/Y H:i',
        formatDate:'d/m/Y'
    });
    

    【讨论】:

    • 禁用过去 TIME。请保持相关性。
    【解决方案4】:

    要禁用过去的时间,您应该使用minDateTime。 像这样更新你的代码,

    var dt = new Date();
    $('#datetimepicker3').datetimepicker({
        inline:true,
        minDate: 0,
        minDateTime: dt,
        format:'m/d/Y H:i',
        formatDate:'d/m/Y'
    });
    

    【讨论】:

      【解决方案5】:

      应该是这样的:

      $(function () {
                      $('#datetimepicker3').datetimepicker({
                           minDate: moment()
      
      
                      });
                  });
      

      【讨论】:

        【解决方案6】:

        Source

        我在使用 DateTimePicker jQuery 插件禁用过去日期时间时遇到了同样的问题。但我找到了解决方案-

        var checkPastTime = function(currentDateTime) {
        
        var d = new Date();
        var todayDate = d.getDate();
        
        // 'this' is jquery object datetimepicker
        if (currentDateTime.getDate() == todayDate) { // check today date
            this.setOptions({
                minTime: d.getHours() + ':00' //here pass current time hour
            });
        } else
            this.setOptions({
                minTime: false
            });
        };
        
        $('#datetimepicker7').datetimepicker({
            format:'Y-m-d H:i',
            minDate : 0,
            onChangeDateTime:checkPastTime,
            onShow:checkPastTime
        });
        

        demo

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-07-03
          • 2021-04-15
          • 2013-03-23
          • 2018-10-16
          • 2019-11-29
          • 1970-01-01
          • 2021-01-11
          • 2017-03-02
          相关资源
          最近更新 更多