JQuery Date Picker - отключить прошлые даты - PullRequest
84 голосов
/ 02 декабря 2011

Я пытаюсь выбрать диапазон дат с помощью средства выбора даты в пользовательском интерфейсе.

в поле «От / до» люди не должны иметь возможность просматривать или выбирать даты, предшествующие настоящему дню.1004 * Это мой код:

$(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 );
        }
    });
});

Может кто-нибудь сказать мне, как отключить даты, предшествующие текущей дате.

Ответы [ 15 ]

2 голосов
/ 24 апреля 2013

установить атрибут startDate для datepicker, он работает, ниже рабочий код

$(function(){
$('#datepicker').datepicker({
    startDate: '-0m'
    //endDate: '+2d'
}).on('changeDate', function(ev){
    $('#sDate1').text($('#datepicker').data('date'));
    $('#datepicker').datepicker('hide');
});
})
1 голос
/ 07 июня 2019

Установив startDate: new Date()

$('.date-picker').datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    numberOfMonths: 1,
    ...
    startDate: new Date(),
});
0 голосов
/ 15 сентября 2017

Я создал функцию для отключения предыдущей даты, отключения гибких выходных дней (например, субботы, воскресенья)

Мы используем beforeShowDay метод плагина DatePicker для пользовательского интерфейса jQuery.

<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

Здесь сегодняшняя дата 15 сентября. Я отключил субботу и воскресенье.

0 голосов
/ 03 августа 2015
$( "#date" ).datetimepicker({startDate:new Date()}).datetimepicker('update', new Date());

new Date(): функция получения текущей даты, предыдущая дата заблокирована.100% рабочая

0 голосов
/ 27 сентября 2013

вы должны объявить текущую дату в переменные, подобные этой

 $(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)
    });
})
...