禁用日期选择器过去的日期和时间

Posted

技术标签:

【中文标题】禁用日期选择器过去的日期和时间【英文标题】: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'
);

【问题讨论】:

查看此链接:***.com/questions/8356358/… 您好先生您得到答案了吗 【参考方案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

【讨论】:

以上是关于禁用日期选择器过去的日期和时间的主要内容,如果未能解决你的问题,请参考以下文章

在引导日期选择器中禁用过去的日期

在日期选择器上禁用过去的日期

如何在日期选择器中禁用自定义日期以及以前的日期?

如何在 jQuery 日期选择器中为禁用日期添加工具提示?

禁用日期的 HTML5 日期选择器在 Angular 中不起作用

在日期时间选择器中禁用时间选择器