【问题标题】:minDate: 0, not working in datepickerminDate: 0,不能在日期选择器中工作
【发布时间】:2017-12-12 08:59:34
【问题描述】:

我正在为我的 CodeIgniter 应用程序使用 AdminLte 模板,并且我正在使用 Datepicker 插件。我正在尝试添加minDate 功能以限制用户从当前日期访问上一个日期,但minDate: 0 不起作用,我也可以选择上一个日期。

这是我的 JS:

$('#datepicker5').datepicker({
      autoclose: true,
      //changeYear: true,
      minDate: 0,
    });

$('#datepicker5').datepicker({
      autoclose: true,
      //changeYear: true,
      minDate: new Date(),
    })

今天的日期是 2017 年 12 月 12 日,但我也可以选择上一个日期。 两者都不起作用。

我正在使用具有两个不同 ID 的两个日期选择器。一个是datepicker4datepicker5,我正在计算差异。它们之间。为此,我编写了以下 JS:

$('#datepicker4').datepicker();
  $('#datepicker5').datepicker();
  $('#datepicker5').change(function () {
      var gasDiff= $('#datepicker4').datepicker("getDate") - $('#datepicker5').datepicker("getDate");
      var result = gasDiff / (1000 * 60 * 60 * 24) * -1;

      document.getElementById("gasDiff").value = result;
  });

即使我可以在发行日期之前选择到期日期。 实际上我想选择之前或当前日期的发行日期,以及当前日期之后的到期日期。

编辑:

$('#datepicker1').datepicker({
    autoclose: true,
    endDate: new Date(),
    todayHighlight: true,

  });

  $("#datepicker1").on("change",function(){
        var selected = "Are you sure you want to select this date ?";
        alert(selected);
    });
  //$('#datepicker1')..inputmask('dd/mm/yyyy', { 'placeholder': 'dd/mm/yyyy' });

  $('#datepicker2').datepicker({
    autoclose: true,
    todayHighlight: true,
    startDate: new Date(),
  });

  $('#datepicker1', '#datepicker2').change(function(){
    var certDiff= $('#datepicker1').datepicker("getDate") - $('#datepicker2').datepicker("getDate");    
    var result = certDiff / (1000 * 60 * 60 * 24) * -1;
    //("#certDiff").text(result);
    document.getElementById("certDiff").value = result;
    //document.getElementById("certDiff").innerHTML = result;
  });

欢迎任何形式的帮助,在此先感谢。

【问题讨论】:

  • 这不是与 codeigniter 相关的问题。

标签: javascript jquery datepicker mindate


【解决方案1】:

如上所述,bootstrap-datepicker 插件正在使用 startDate: new Date() 属性

$('#datepicker4').datepicker({
autoclose: true,
startDate: new Date() 
});

$('#datepicker5').datepicker({
 autoclose: true,
 startDate: new Date(),
}).change(function(){
var gasDiff= $('#datepicker4').datepicker("getDate") - $(this).datepicker("getDate");    
var result = gasDiff / (1000 * 60 * 60 * 24) * -1;
  $("#gasDiff").text(result);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/css/bootstrap-datepicker.css" rel="stylesheet"/>

<input type="text" id="datepicker4"/>
<input type="text" id="datepicker5"/>
<div id="gasDiff">

</div>

【讨论】:

  • 我们如何为两个日期选择器进行更改事件?现在它仅适用于第二个日期选择器,这意味着只有当我更改第二个日期选择器的值时它才会产生差异,但如果我从第一个日期选择器更改日期,则持续时间不会改变。
  • 如果我首先从第二个日期选择器中选择日期,它会给出错误的结果
  • 我尝试并为更改事件进行了所有更改,但在持续时间内没有给出任何结果。请检查我更新的问题。
  • 请查看Link。愿它有所帮助!
【解决方案2】:

这看起来像bootstrap-datepicker 插件。使用startDate: "12/12/2017" 而不是minDate: new Date()

您可以在documentation找到更多详细信息

【讨论】:

  • @GaneshAher 我已经编辑了我的答案。 startDate 属性值必须是与您设置的格式具有相同格式的字符串。默认是mm/dd/yyyy
猜你喜欢
  • 2013-10-13
  • 1970-01-01
  • 2021-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-21
相关资源
最近更新 更多