Я пытаюсь выбрать диапазон дат с помощью средства выбора даты пользовательского интерфейса.
в поле от / до люди не должны иметь возможность просматривать или выбирать даты, предшествующие сегодняшнему дню.
Это мой код:
$(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 );
}
});
});
Может кто-нибудь сказать мне, как отключить даты, предшествующие нынешней дате.
showAnim:"",
в настройки datepicker, чтобы убрать раздражающую смену месяца и года, когда вы делаете свой выбор.Объявите переменную dateToday и используйте функцию Date () для ее установки .. затем используйте эту переменную для назначения minDate, который является параметром datepicker.
var dateToday = new Date(); $(function() { $( "#datepicker" ).datepicker({ numberOfMonths: 3, showButtonPanel: true, minDate: dateToday }); });
Вот и все ... Приведенный выше ответ был действительно полезен ... Так держать, ребята ..
источник
$('#datepicker-dep').datepicker({ minDate: 0 });
minDate:0
работает для меня.источник
Используйте опцию minDate, чтобы ограничить самую раннюю разрешенную дату. Значение «0» означает сегодня (0 дней с сегодняшнего дня):
$(document).ready(function () { $("#txtdate").datepicker({ minDate: 0, // ... }); });
Документы здесь: http://api.jqueryui.com/datepicker/#option-minDate
источник
Чтобы добавить к этому:
Если вам также необходимо запретить пользователю вручную вводить дату в прошлом, это возможное решение. Это то, что мы в итоге сделали (на основе ответа @Nicola Peluchetti)
var dateToday = new Date(); $("#myDatePickerInput").change(function () { var updatedDate = $(this).val(); var instance = $(this).data("datepicker"); var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, updatedDate, instance.settings); if (date < dateToday) { $(this).datepicker("setDate", dateToday); } });
Это меняет значение на сегодняшнюю дату, если пользователь вручную вводит дату в прошлом.
источник
Живая демонстрация , попробуйте это,
$('#from').datepicker( { minDate: 0, beforeShow: function() { $(this).datepicker('option', 'maxDate', $('#to').val()); } }); $('#to').datepicker( { defaultDate: "+1w", beforeShow: function() { $(this).datepicker('option', 'minDate', $('#from').val()); if ($('#from').val() === '') $(this).datepicker('option', 'minDate', 0); } });
источник
Это простой способ сделать это
$('#datepicker').datepicker('setStartDate', new Date());
также мы можем отключить будущие дни
$('#datepicker').datepicker('setEndDate', new Date());
источник
установите атрибут startDate для datepicker, он работает, ниже рабочий код
$(function(){ $('#datepicker').datepicker({ startDate: '-0m' //endDate: '+2d' }).on('changeDate', function(ev){ $('#sDate1').text($('#datepicker').data('date')); $('#datepicker').datepicker('hide'); }); })
источник
документация jQuery API - datepicker
Минимальная выбираемая дата. Когда установлено значение
null
, минимума нет.Поддерживаются несколько типов:
Дата: объект даты, содержащий минимальную дату.
Число: количество дней с сегодняшнего дня. Например
2
представляетtwo days
с сегодняшнего дня и-1
представляетyesterday
.Строка: строка в формате, определенном
dateFormat
параметром, или относительная дата.Относительные даты должны содержать пары значений и периода; действительные периоды
y
дляyears
,m
дляmonths
,w
дляweeks
иd
дляdays
. Например,+1m +7d
представляетone month and seven days
изtoday
.Чтобы не отображать предыдущие даты, кроме сегодняшнего дня
$('#datepicker').datepicker({minDate: 0});
источник
Атрибут " mindate " должен использоваться для отключения переданных дат в jquery datepicker.
Ex: $(function() { $( "#datepicker" ).datepicker({minDate: new Date()}); });
ИЛИ
$(function() { $( "#datepicker" ).datepicker({minDate: 0}); });
источник
просто замените свой код:
старый код:
$("#dateSelect").datepicker({ showOtherMonths: true, selectOtherMonths: true, changeMonth: true, changeYear: true, showButtonPanel: true, dateFormat: 'yy-mm-dd' });
новый код:
$("#dateSelect").datepicker({ showOtherMonths: true, selectOtherMonths: true, changeMonth: true, changeYear: true, showButtonPanel: true, dateFormat: 'yy-mm-dd', minDate: 0 });
источник
Установив
startDate: new Date()
$('.date-picker').datepicker({ defaultDate: "+1w", changeMonth: true, numberOfMonths: 1, ... startDate: new Date(), });
источник
Я создал функцию для отключения предыдущей даты, отключения гибких выходных дней (например, суббота, воскресенье)
Мы используем метод beforeShowDay плагина jQuery UI datepicker.
<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 });
Сегодня 15 сентября. Я отключил субботу и воскресенье.
источник
вы должны объявить текущую дату в таких переменных
$(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) }); })
источник
$( "#date" ).datetimepicker({startDate:new Date()}).datetimepicker('update', new Date());
new Date()
: функция получить сегодняшнюю дату предыдущая дата заблокирована. 100% рабочийисточник
вы можете просто использовать
startDate: 'today'
он отлично работает для меня.
источник