Próbuję wybrać zakres dat za pomocą selektora dat w interfejsie użytkownika.
w polu od / do ludzie nie powinni mieć możliwości przeglądania ani wybierania dat poprzedzających dzień dzisiejszy.
To jest mój kod:
$(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 );
}
});
});
Czy ktoś może mi powiedzieć, jak wyłączyć daty przed datą obecną.
showAnim:"",
do ustawień DatePicker, aby usunąć irytujące zmiany miesiąca i roku po dokonaniu wyboru.Zadeklaruj zmienną dateToday i użyj funkcji Date (), aby ją ustawić .. następnie użyj tej zmiennej, aby przypisać ją do minDate, która jest parametrem datepicker'a.
var dateToday = new Date(); $(function() { $( "#datepicker" ).datepicker({ numberOfMonths: 3, showButtonPanel: true, minDate: dateToday }); });
To wszystko ... Powyższa odpowiedź była bardzo pomocna ... tak trzymajcie ...
źródło
$('#datepicker-dep').datepicker({ minDate: 0 });
minDate:0
pracuje dla mnie.źródło
Użyj opcji „minDate”, aby ograniczyć najwcześniejszą dozwoloną datę. Wartość „0” oznacza dzisiaj (0 dni od dzisiaj):
$(document).ready(function () { $("#txtdate").datepicker({ minDate: 0, // ... }); });
Dokumenty tutaj: http://api.jqueryui.com/datepicker/#option-minDate
źródło
Wystarczy dodać do tego:
Jeśli chcesz również uniemożliwić użytkownikowi ręczne wpisywanie daty z przeszłości, jest to możliwe rozwiązanie. Oto, co ostatecznie zrobiliśmy (na podstawie odpowiedzi @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); } });
To powoduje zmianę wartości na dzisiejszą datę, jeśli użytkownik ręcznie wpisze datę z przeszłości.
źródło
Live Demo , spróbuj tego,
$('#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); } });
źródło
To łatwy sposób
$('#datepicker').datepicker('setStartDate', new Date());
możemy również wyłączyć przyszłe dni
$('#datepicker').datepicker('setEndDate', new Date());
źródło
ustaw atrybut startDate w datepicker, działa, poniżej działający kod
$(function(){ $('#datepicker').datepicker({ startDate: '-0m' //endDate: '+2d' }).on('changeDate', function(ev){ $('#sDate1').text($('#datepicker').data('date')); $('#datepicker').datepicker('hide'); }); })
źródło
Dokumentacja jQuery API - datepicker
Minimalna data do wyboru. Po ustawieniu
null
nie ma minimum.Obsługiwane wiele typów:
Data: obiekt daty zawierający minimalną datę.
Liczba: liczba dni od dzisiaj. Na przykład
2
reprezentujetwo days
od dzisiaj i-1
reprezentujeyesterday
.Ciąg: ciąg w formacie zdefiniowanym przez
dateFormat
opcję lub datę względną.Daty względne muszą zawierać pary wartości i okresów; ważne okresy to
y
zayears
,m
zamonths
,w
zaweeks
id
zadays
. Na przykład+1m +7d
reprezentujeone month and seven days
fromtoday
.Aby nie wyświetlać poprzednich dat innych niż dzisiejszy
$('#datepicker').datepicker({minDate: 0});
źródło
Atrybut „ mindate ” powinien być używany do wyłączania minionych dat w jquery datepicker.
Ex: $(function() { $( "#datepicker" ).datepicker({minDate: new Date()}); });
LUB
$(function() { $( "#datepicker" ).datepicker({minDate: 0}); });
źródło
po prostu zastąp swój kod:
stary kod:
$("#dateSelect").datepicker({ showOtherMonths: true, selectOtherMonths: true, changeMonth: true, changeYear: true, showButtonPanel: true, dateFormat: 'yy-mm-dd' });
nowy kod:
$("#dateSelect").datepicker({ showOtherMonths: true, selectOtherMonths: true, changeMonth: true, changeYear: true, showButtonPanel: true, dateFormat: 'yy-mm-dd', minDate: 0 });
źródło
Przez ustawienie
startDate: new Date()
$('.date-picker').datepicker({ defaultDate: "+1w", changeMonth: true, numberOfMonths: 1, ... startDate: new Date(), });
źródło
Stworzyłem funkcję wyłączania poprzedniej daty, wyłączania elastycznych dni weekendowych (jak sobota, niedziela)
Używamy metody beforeShowDay wtyczki datepicker jQuery UI.
<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 });
Tutaj dzisiejsza data to 15 września. Wyłączyłem sobotę i niedzielę.
źródło
musisz zadeklarować bieżącą datę w takich zmiennych jak ta
$(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) }); })
źródło
$( "#date" ).datetimepicker({startDate:new Date()}).datetimepicker('update', new Date());
new Date()
: funkcja pobiera dzisiejszą datę poprzednia data jest zablokowana. 100% sprawneźródło
możesz po prostu użyć
startDate: 'today'
to działa dobrze dla mnie.
źródło