Bootstrap datepicker disabling past dates without current date
Solution 1
var date = new Date();
date.setDate(date.getDate()-1);
$('#date').datepicker({
startDate: date
});
Solution 2
Use minDate
var date = new Date();
var today = new Date(date.getFullYear(), date.getMonth(), date.getDate());
$('#date').datepicker({
minDate: today
});
Solution 3
HTML
<input type="text" name="my_date" value="4/26/2015" class="datepicker">
JS
jQuery(function() {
var datepicker = $('input.datepicker');
if (datepicker.length > 0) {
datepicker.datepicker({
format: "mm/dd/yyyy",
startDate: new Date()
});
}
});
That will highlight the default date as 4/26/2015 (Apr 26, 2015) in the calendar when opened and disable all the dates before current date.
Solution 4
use
startDate: '-0d'
Like
$("#datepicker").datepicker({
startDate: '-0d',
changeMonth: true
});
Solution 5
You can use the data attribute:
<div class="datepicker" data-date-start-date="+1d"></div>
Comments
-
itskawsar about 3 years
I wanted to disable all past date before current date, not with current date. I am trying by bootstrap datepicker library "bootstrap-datepicker" and using following code:
$('#date').datepicker({ startDate: new Date() });
It works fine. But it is disabling date till today.
As example if today is 04-20-2013 and i disable past dates by setting startDate: new Date(). but I am able to select date from 04-21-2013.
UPDATED: i can solve it as following for UTC zone:
var d = new Date(); options["startDate"] = new Date(d.setDate(d.getDate() - 1));
or
startDate: "+0d"
But these methods don't work when UTC is a day ahead. For my client in California that means at 5:00 pm my client can no longer select his local current date as a valid date. In order to fix this I am temporarily using
startDate: "-1d"
, but of course before 5 that means yesterday is visible.Has anyone come up with a better method for now as I do not want to tell users to put in a UTC date?
Thanks in advance.