引导日期选择器禁用没有当前日期的过去日期
我想禁用当前日期之前的所有过去日期,而不是当前日期。我试图通过引导日期选择库“bootstrap-datepicker”,用下面的代码:引导日期选择器禁用没有当前日期的过去日期
$('#date').datepicker({
startDate: new Date()
});
它工作正常。但它是迄今为止的禁用日期。
举例来说,如果今天是04-20-2013,我通过设置startDate:new Date()来禁用过去的日期。但我可以选择日期从2013年4月21日。
更新:我能解决这个问题如下为UTC区:
var d = new Date();
options["startDate"] = new Date(d.setDate(d.getDate() - 1));
或startDate: "+0d"
但是,当UTC是提前一天,这些方法不起作用。对于我在加利福尼亚州的客户来说,这意味着我的客户在下午5点不能再选择当地的当前日期作为有效日期。为了解决这个问题,我暂时使用startDate: "-1d"
,但是当然在5之前,这意味着昨天是可见的。
现在有没有人想出一个更好的方法,因为我不想告诉用户输入UTC日期?
在此先感谢。
var date = new Date();
date.setDate(date.getDate()-1);
$('#date').datepicker({
startDate: date
});
var nowDate = new Date();
var today = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), 0, 0, 0, 0);
\t $('#date').datetimepicker({
\t \t startDate: today
\t });
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()
});
}
});
这将突出默认日期2015年4月26日(2015年4月26日)在日历中ar打开并且 禁用当前日期之前的所有日期。
使用minDate
var date = new Date();
var today = new Date(date.getFullYear(), date.getMonth(), date.getDate());
$('#date').datepicker({
minDate: today
});
你是我唯一的答案。谢谢! – 2016-01-06 17:35:06
为简单起见,使用'moment.js'就像'minDate:moment()' – 2017-02-24 07:11:26
这和@SaahithyanVigneswaran应该是正确的答案。 – JohnA10 2017-05-04 16:59:26
<script type="text/javascript">
$('.datepicker').datepicker({
format: 'dd/mm/yyyy',
todayHighlight:'TRUE',
startDate: '-0d',
autoclose: true,
})
你能解释为什么这会起作用吗?为什么它比2年前公认的答案更好? – 2015-09-11 13:44:07
禁用所有过去的日期
<script type="text/javascript">
$(function() {
/*--FOR DATE----*/
var date = new Date();
var today = new Date(date.getFullYear(), date.getMonth(), date.getDate());
//Date1
$('#ctl00_ContentPlaceHolder1_txtTranDate').datepicker({
format: 'dd-mm-yyyy',
todayHighlight:'TRUE',
startDate: today,
endDate:0,
autoclose: true
});
});
</script>
禁用所有未来的日期
var date = new Date();
var today = new Date(date.getFullYear(), date.getMonth(), date.getDate());
//Date1
$('#ctl00_ContentPlaceHolder1_txtTranDate').datepicker({
format: 'dd-mm-yyyy',
todayHighlight:'TRUE',
minDate: today,
autoclose: true
});
使用
startDate: '-0d'
像
$("#datepicker").datepicker({
startDate: '-0d',
changeMonth: true
});
您可以使用数据属性:
<div class="datepicker" data-date-start-date="+1d"></div>
这是
<script>
$(function() {
var date = new Date();
date.setDate(date.getDate() - 7);
$('#datetimepicker1').datetimepicker({
maxDate: 'now',
showTodayButton: true,
showClear: true,
minDate: date
});
});
</script>
禁用过去的日期只使用:
$('.input-group.date').datepicker({
format: 'dd/mm/yyyy',
startDate: 'today'
});
试试:
$(function() {
$('#datetimepicker').datetimepicker({ minDate:new Date()});
});
请参阅小提琴http://jsfiddle.net/Ritwika/gsvh83ry/
**With three fields having date greater than the **
<input type="text" type="text" class="form-control datepickstart" />
<input type="text" type="text" class="form-control datepickend" />
<input type="text" type="text" class="form-control datepickthird" />
var date = new Date();
date.setDate(date.getDate()-1);
$('.datepickstart').datepicker({
autoclose: true,
todayHighlight: true,
format: 'dd/mm/yyyy',
startDate: date
});
$('.datepickstart').datepicker().on('changeDate', function() {
var temp = $(this).datepicker('getDate');
var d = new Date(temp);
d.setDate(d.getDate() + 1);
$('.datepickend').datepicker({
autoclose: true,
format: 'dd/mm/yyyy',
startDate: d
}).on('changeDate', function() {
var temp1 = $(this).datepicker('getDate');
var d1 = new Date(temp1);
d1.setDate(d1.getDate() + 1);
$('.datepickthird').datepicker({
autoclose: true,
format: 'dd/mm/yyyy',
startDate: d1
});
});
});
下面我
$('.input-group.date').datepicker({
format: 'dd/mm/yyyy',
startDate: new Date()
});
这不回答问题。你应该给出一个解决问题的答案,解释它为什么起作用,解释它是如何工作的,这样其他人可以学习。你是怎么想出这个答案的?这是你应该在你的答案中包含的内容。您的回答对目前状态下的其他读者没有帮助。 – GrumpyCrouton 2017-06-07 19:19:31
您使用的引导2.0.4+ 的jQuery 1.7.1工作+? – 2013-04-20 17:18:32
我正在使用Bootstrap v2.2.1和jQuery 1.8.1 – itskawsar 2013-04-20 17:41:22