jQuery日期选择器 - 禁用过去的日期

96

我正在尝试使用UI日期选择器来实现日期范围选择。

在起始/结束日期字段中,人们不应该能够查看或选择以前的日期。

这是我的代码:

$(function() {
    var dates = $( "#from, #to" ).datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 1,
        onSelect: function( selectedDate ) {
            var option = this.id == "from" ? "minDate" : "maxDate",
                instance = $( this ).data( "datepicker" ),
                date = $.datepicker.parseDate(
                    instance.settings.dateFormat ||
                    $.datepicker._defaults.dateFormat,
                    selectedDate, instance.settings );
            dates.not( this ).datepicker( "option", option, date );
        }
    });
});

请问如何禁用早于当前日期的日期?

16个回答

3

jQuery API文档-日期选择器

最小可选择日期。当设置为null时,没有最小值。

支持多种类型:

日期:包含最小日期的日期对象。
数字:从今天起的天数。例如,2表示今天后两天-1表示昨天
字符串:格式由dateFormat选项定义的字符串或相对日期。
相对日期必须包含值和时间段对;有效的时间段包括y代表m代表w代表d代表。例如,+1m +7d表示从今天起一个月零七天

为了不显示早于今天的日期

$('#datepicker').datepicker({minDate: 0});

2

在jquery日期选择器中,应使用“mindate”属性来禁用过去的日期。

minDate: new Date() 或 minDate: '0' 是实现此功能的关键.

Ex:

$(function() {
    $( "#datepicker" ).datepicker({minDate: new Date()});
});

或者

$(function() {
  $( "#datepicker" ).datepicker({minDate: 0});
});

2

你可以简单地使用

startDate: 'today'

对我来说IT技术运作良好。


1
我已经创建了一个函数来禁用以前的日期,禁用灵活的周末日期(例如星期六、星期天)。
我们正在使用jQuery UI日期选择器插件的beforeShowDay方法。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
var NotBeforeToday = function(date) {
  var now = new Date(); //this gets the current date and time
  if (date.getFullYear() == now.getFullYear() && date.getMonth() == now.getMonth() && date.getDate() >= now.getDate() && (date.getDay() > 0 && date.getDay() < 6) )
   return [true,""];
  if (date.getFullYear() >= now.getFullYear() && date.getMonth() > now.getMonth() && (date.getDay() > 0 && date.getDay() < 6))
   return [true,""];
  if (date.getFullYear() > now.getFullYear() && (date.getDay() > 0 && date.getDay() < 6))
   return [true,""];
  return [false,""];
 }


jQuery("#datepicker").datepicker({
  beforeShowDay: NotBeforeToday
    });

enter image description here

今天的日期是9月15日。我已经禁用了周六和周日。


0

你需要像这样将当前日期声明为变量

 $(function() {
    var date = new Date();
    var currentMonth = date.getMonth();
    var currentDate = date.getDate();
    var currentYear = date.getFullYear();
    $('#datepicker').datepicker({
    minDate: new Date(currentYear, currentMonth, currentDate)
    });
})

0
$( "#date" ).datetimepicker({startDate:new Date()}).datetimepicker('update', new Date());

new Date():获取今天的日期函数,以前的日期被锁定。100% 工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接