【问题标题】:Bootstrap DatePicker subtract daysBootstrap DatePicker 减去天数
【发布时间】:2020-02-12 12:27:18
【问题描述】:

下面是我的 sn-p 代码。我想设置我的日历的默认值,从今天减去 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") );

以上代码的输出:

【问题讨论】:

  • 或者干脆把.datepicker("setDate", "-7") );改成.datepicker("setDate", "-7d") );
  • @Pedram 我将当前月份减去了 1,它正在使用此代码 .datepicker("setDate", "-1m")。但我也想将这一天设置为第一天。我该怎么做?谢谢

标签: jquery bootstrap-4 bootstrap-datepicker


【解决方案1】:

添加 startDate 以启用与当前日期相比的前 7 天。

var todayDate = new Date();
todayDate.setDate(todayDate.getDate() - 7);
$( "datepast" ).datepicker
(
    {
        format: 'mm/dd/yyyy',
        startDate: '-7d',
        setDate: 'today'
    }
).datepicker("setDate", todayDate);

【讨论】:

    【解决方案2】:

    使用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") )
    

    【讨论】:

    • 但是它不会在日历本身中设置值,我的意思是它应该将日期变成蓝色,就像它已经选择的那样。
    • @user3012377 没看懂,2月6号已经被选中,被选中,有什么问题?
    • @user3012377 很好,如果我的答案解决了,很高兴能提供帮助,您可以接受。祝你好运
    • 我将当前月份减去 1,这与此代码 .datepicker("setDate", "-1m") 一起使用。但我也想将这一天设置为第一天。我该怎么做?谢谢
    • @user3012377 这是新问题
    猜你喜欢
    • 2021-01-10
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    • 2012-06-24
    • 1970-01-01
    • 2012-03-19
    相关资源
    最近更新 更多