首页 > 解决方案 > Bootstrap DatePicker 减去天数

问题描述

下面是我的代码片段。我想将我的日历的默认值设置为从今天减去 7 天。下面的代码不起作用,因为它设置了当前日期,请参阅我的屏幕截图。

$( "datepast" ).datepicker
    (
        {
            rtl: Metronic.isRTL(),
            language: 'neo',
            orientation: "center",
            autoclose: true,
            date: $( gSelector + "_past_val" ).val(),
            beforeShowDay: function( dt ) { return dt <= new Date(); }
        }
    )
    .datepicker("setDate", "-7") );

上述代码的输出:

在此处输入图像描述

标签: jquerybootstrap-4bootstrap-datepicker

解决方案


使用date对象,并减去它,用于setDate设置新值。

var d = new Date();
d.setDate(d.getDate() - 7);

$('.datepast').datepicker({
  format: 'mm/dd/yyyy',
  beforeShowDay: function(dt) {
    return dt <= new Date();
  }
}).datepicker("setDate", d);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js" integrity="sha256-bqVeqGdJ7h/lYPq6xrPv/YGzMEb6dNxlfiTUHSgRCp8=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css" integrity="sha256-siyOpF/pBWUPgIcQi17TLBkjvNgNQArcmwJB8YvkAgg=" crossorigin="anonymous" />

<input class="datepast" />

更新:

或者干脆改变

.datepicker("setDate", "-7") )

.datepicker("setDate", "-7d") )

推荐阅读