Bootstrap日期选择器禁用没有当前日期的过去日期

IT技术 javascript jquery twitter-bootstrap bootstrap-datepicker
2021-02-11 19:39:53

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

$('#date').datepicker({ 
    startDate: new Date() 
});

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

例如,如果今天是 04-20-2013,我通过设置 startDate: new Date() 禁用过去的日期。但我可以选择 04-21-2013 的日期。

更新:对于 UTC 区域,我可以按以下方式解决它:

var d = new Date();
options["startDate"] = new Date(d.setDate(d.getDate() - 1));

或者 startDate: "+0d"

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

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

提前致谢。

6个回答
var date = new Date();
date.setDate(date.getDate()-1);

$('#date').datepicker({ 
    startDate: date
});
您的脚本使用起来很短,但它允许用户选择昨天的日期。这个 解决方案有效希望有所帮助。
2021-03-22 19:39:53
我不完全确定。您可能想看看这个线程:需要使用 Javascript 日期对象在 DST 转换上显示本地时间
2021-03-25 19:39:53
我收到 TypeError: 选项 startDate 无法识别!你知道问题吗
2021-04-02 19:39:53
无论如何这可以动态完成而不是在选项中设置?
2021-04-06 19:39:53
如果时区将来会改变,会发生什么?
2021-04-12 19:39:53

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()
    });
  }
});

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

使用minDate

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

$('#date').datepicker({ 
    minDate: today
});
为了让未来的用户知道,这个解决方案适用于不同的插件('bootstrap-datetimepicker')。
2021-04-07 19:39:53
为简单起见,使用moment.jsminDate: moment()
2021-04-10 19:39:53

利用

startDate: '-0d'

喜欢

$("#datepicker").datepicker({
    startDate: '-0d',
    changeMonth: true
});

您可以使用数据属性:

<div class="datepicker" data-date-start-date="+1d"></div>