Reputation: 1027
Hi I want to set min date in my jQuery datepicker to (1999-10-25). So I tried the below code it's not working.
$(function () {
$('#datepicker').datepicker({
dateFormat: 'yy-mm-dd',
showButtonPanel: true,
changeMonth: true,
changeYear: true,
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
minDate: new Date(1999, 10 - 1, 25),
maxDate: '+30Y',
inline: true
});
});
If I change the min year to above 2002 than it will work fine but if I specify min year less than 2002 (like above example 1999), it will show only up to 2002.
I am using jquery-1.7.1.min.js
and jquery-ui-1.8.18.custom.min.js
.
Upvotes: 61
Views: 361932
Reputation: 13134
The problem is that the default option of "yearRange" is 10 years.
So 2012 - 10 = 2002
.
So change the yearRange to c-20:c
or just 1999 (yearRange: '1999:c'
), and use that in combination with restrict dates (mindate, maxdate).
For more info: https://jqueryui.com/demos/datepicker/#option-yearRange
See example: (JSFiddle)
And your code with the addition:
$(function () {
$('#datepicker').datepicker({
dateFormat: 'yy-mm-dd',
showButtonPanel: true,
changeMonth: true,
changeYear: true,
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
minDate: new Date(1999, 10 - 1, 25),
maxDate: '+30Y',
yearRange: '1999:c',
inline: true
});
});
Upvotes: 19
Reputation: 31
Just want to add this for the future programmer.
This code limits the date min and max. The year is fully controlled by getting the current year as max year.
Hope this could help to anyone.
Here's the code.
var dateToday = new Date();
var yrRange = '2014' + ":" + (dateToday.getFullYear());
$(function () {
$("[id$=txtDate]").datepicker({
showOn: 'button',
changeMonth: true,
changeYear: true,
showButtonPanel: true,
buttonImageOnly: true,
yearRange: yrRange,
buttonImage: 'calendar3.png',
buttonImageOnly: true,
minDate: new Date(2014,1-1,1),
maxDate: '+50Y',
inline:true
});
});
Upvotes: 3
Reputation: 2776
Just in case if for example you need to put a min date, the last 3 months and max date next 3 months
$('#id_your_date').datepicker({
maxDate: '+3m',
minDate: '-3m'
});
Upvotes: 3
Reputation: 77
basically if you already specify the year range there is no need to use mindate
and maxdate
if only year is required
Upvotes: 1
Reputation: 31
Try like this
<script>
$(document).ready(function(){
$("#order_ship_date").datepicker({
changeMonth:true,
changeYear:true,
dateFormat:"yy-mm-dd",
minDate: +2,
});
});
</script>
html code is given below
<input id="order_ship_date" type="text" class="input" style="width:80px;" />
Upvotes: 3
Reputation: 1554
$(function () {
$('#datepicker').datepicker({
dateFormat: 'yy-mm-dd',
showButtonPanel: true,
changeMonth: true,
changeYear: true,
yearRange: '1999:2012',
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
minDate: new Date(1999, 10 - 1, 25),
maxDate: '+30Y',
inline: true
});
});
Just added year range option. It should solve the problem
Upvotes: 107
Reputation: 34107
Hiya working demo: http://jsfiddle.net/femy8/
Now the calendar will only go to minimum of 1999-10-25.
Click on the image i.e. small icon next to text box for calendar to appear. You can try selecting up until 1999 but the minimum date for selection is 25th of oct 1999. which is what you want.
This will help, have a nice one! :) cheers!
Jquery Code
$(".mypicker").datepicker({
changeYear: true,
dateFormat: 'yy-mm-dd',
showButtonPanel: true,
changeMonth: true,
changeYear: true,
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
minDate: new Date('1999/10/25'),
maxDate: '+30Y',
inline: true
});
Upvotes: 7