Bootstrap datepicker禁用过去的日期而没有当前日期

its*_*sar 31 javascript jquery twitter-bootstrap

我想在当前日期之前禁用所有过去的日期,而不是当前日期.我正在尝试使用bootstrap datepicker库" bootstrap-datepicker "并使用以下代码:

$('#date').datepicker({ 
    startDate: new Date() 
});
Run Code Online (Sandbox Code Playgroud)

它工作正常.但它是禁用日期直到今天.

例如,如果今天是04-20-2013并且我通过设置startDate:new Date()来禁用过去的日期.但我可以从2013年11月11日选择日期.

更新:我可以解决以下UTC区域:

var d = new Date();
options["startDate"] = new Date(d.setDate(d.getDate() - 1));
Run Code Online (Sandbox Code Playgroud)

要么 startDate: "+0d"

但是,当UTC提前一天时,这些方法不起作用.对于我在加利福尼亚的客户,这意味着在下午5点,我的客户不能再选择他当地的当前日期作为有效日期.为了解决这个问题,我暂时使用startDate: "-1d",但当然在5之前,这意味着昨天可见.

有没有人想出一个更好的方法,因为我不想告诉用户输入UTC日期?

提前致谢.

Tom*_*man 53

var date = new Date();
date.setDate(date.getDate()-1);

$('#date').datepicker({ 
    startDate: date
});
Run Code Online (Sandbox Code Playgroud)

  • 我不完全确定.您可能想看一下这个帖子:[需要使用Javascript Date Object显示DST过渡的本地时间](http://stackoverflow.com/questions/7310560/need-to-display-local-times-over- DST-过渡-使用JavaScript的最新对象) (2认同)

Jig*_*hel 21

HTML

<input type="text" name="my_date" value="4/26/2015" class="datepicker">
Run Code Online (Sandbox Code Playgroud)

JS

jQuery(function() {
  var datepicker = $('input.datepicker');

  if (datepicker.length > 0) {
    datepicker.datepicker({
      format: "mm/dd/yyyy",
      startDate: new Date()
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

这将突出显示日历中的默认日期为2015年4月26日(2015年4月26日),并禁用当前日期之前的所有日期.


Seb*_*ian 19

使用minDate

var date = new Date();
var today = new Date(date.getFullYear(), date.getMonth(), date.getDate());

$('#date').datepicker({ 
    minDate: today
});
Run Code Online (Sandbox Code Playgroud)

  • 为了简单起见,请使用诸如`minDate:moment()`之类的`moment.js`。 (2认同)

小智 14

使用

startDate: '-0d'
Run Code Online (Sandbox Code Playgroud)

喜欢

$("#datepicker").datepicker({
    startDate: '-0d',
    changeMonth: true
});
Run Code Online (Sandbox Code Playgroud)


小智 8

您可以使用data属性:

<div class="datepicker" data-date-start-date="+1d"></div>
Run Code Online (Sandbox Code Playgroud)


cfp*_*bhu 7

var nowDate = new Date();
var today = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), 0, 0, 0, 0);
	$('#date').datetimepicker({
		startDate: today
	});
Run Code Online (Sandbox Code Playgroud)


akr*_*ich 6

解决方案要简单得多:

$('#date').datepicker({ 
    startDate: "now()" 
});
Run Code Online (Sandbox Code Playgroud)

尝试在线演示并填写输入开始日期:现在()


Cha*_*a K 5

<script type="text/javascript">
$('.datepicker').datepicker({
    format: 'dd/mm/yyyy',
    todayHighlight:'TRUE',
    startDate: '-0d',
    autoclose: true,
})
Run Code Online (Sandbox Code Playgroud)