日历不是从今天开始 jqueryui daterangepicker

Posted

技术标签:

【中文标题】日历不是从今天开始 jqueryui daterangepicker【英文标题】:Calendar not starting from today jqueryui daterangepicker 【发布时间】:2019-06-12 21:20:30 【问题描述】:

我正在使用 jQuery UI Daterangepicker (reference)。

我希望日历从今天开始,没有最大日期。我正在尝试使用日历中的时刻作为日期。

这是我拥有的 html 和 JS 代码,但它将结束日期设置为今天,没有 minDate。

<input id="search-vac-daterange" name="search-vac-daterange">

$("#search-vac-daterange").daterangepicker(
    minDate: moment(),
    startDate: moment()
);

我也尝试过 minDate: new Date()startDate: new Date()。也没有结果。日期以今天作为结束日期。

注意:moment 正在工作,因为 console.log(moment());返回我一个时刻对象:

p _isAMomentObject: true, _isUTC: false, _pf: …, _locale: j, _d: Fri Jan 18 2019 16:14:35 GMT+0100 (Midden-Europese standaardtijd), …

编辑:我已经尝试了下面给出的建议,它们都不会对解决方案产生影响。

dateFormat: 'dd/mm/yy',
minDate: moment().format('DD/MM/YYYY'),
startDate: moment().format('DD/MM/YYYY'),

minDate: new Date(moment("11-02-1993").format("YYYY-MM-DD")),
startDate: new Date(moment("11-02-1994").format("YYYY-MM-DD")),

添加图片以显示问题:

【问题讨论】:

【参考方案1】:

你有两个问题。首先,moment() 返回一个 Moment 对象,该对象对于选择器的 minDatestartDate 属性不是有效值。要解决这个问题,只需传递一个标准的 Date 对象。

其次,您需要为datepickerOptions 对象内的底层jQueryUI datepicker 控件提供选项:

$("#search-vac-daterange").daterangepicker(
  datepickerOptions: 
    minDate: new Date(),
    startDate: new Date(),
    maxDate: '+1y' // required for future dates to be selectable
  
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript" src="//code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
<script type="text/javascript" src="http://tamble.github.io/jquery-ui-daterangepicker/daterangepicker-master/jquery.comiseo.daterangepicker.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/2.3.1/moment.min.js"></script>
<input id="search-vac-daterange" name="search-vac-daterange">

【讨论】:

感谢您的回复!我也在想同样的事情,因此我已经尝试过使用 new Date() ,但它不起作用。 在尝试了您的建议后,我编辑了我的帖子。我仍然无法让它工作。似乎它根本没有拿起 min & startDate 。即使更改事件侦听器、presetRanges 和 applybuttonText 正在工作。 我重新阅读了文档;您需要在单独的对象中为基础 jQueryUI 日期选择器提供属性。我已经为你更新了答案 我还刚刚在问题中编辑了一个有效的 sn-p,以便为您提供演示。顺便说一句,如果您想禁用过去的日期,您应该考虑删除左侧的文本标签,因为它们中的大多数将无法通过您的验证 非常感谢!这是有效的。我无法让即时版本正常工作,我想这与格式化有关。但是使用 new Date() 它可以正常工作!非常感谢!

以上是关于日历不是从今天开始 jqueryui daterangepicker的主要内容,如果未能解决你的问题,请参考以下文章

jqueryUI 日历 datepicker

jQueryUI DatePicker - 将点击事件添加到 minDate 和 maxDate 之外的日期

MDP是一个小插件,它使jQueryUI日历能够管理多个日期。

jQueryUI中Datepicker(日历)插件使用

简单的类似 DatePicker 的日历 [关闭]

最后一个日历月的纪元时间