【问题标题】:Bootstrap daterangepicker selected start date + 30 days as maxDate引导 daterangepicker 选择开始日期 + 30 天作为 maxDate
【发布时间】:2013-05-04 22:05:30
【问题描述】:

我想知道是否有人可以帮助我。使用 Dan Grossman 的 Bootstrap 日期选择器,我想在选定的开始日期上添加 30 天,并将其定义为 maxDate,这样用户就无法选择超过此日期。

我真的被困在这个问题上,找不到任何与我想做的事情相关的文档。这是我的代码;

var min_date = new Date();
var max_date = '05/31/2013';

$('#limited').daterangepicker(
{
    minDate: min_date,
    maxDate: max_date,
},
function(start, end) {
    $('#limited')
        .data("showAddEventDialogue_dateRangeStart", start)
        .data("showAddEventDialogue_dateRangeEnd", end);
});

非常感谢任何帮助或建议。

谢谢一百万。

【问题讨论】:

  • 我没有使用过这个模块,但是我可以看到你使用一个日期对象作为 minDate 和一个字符串作为 maxDate。你有没有试过这样做:var min_date = max_date = new Date(); max_date.setDate(max_date.getDate() + 30);
  • 它为我工作...无需查看答案..谢谢

标签: javascript jquery twitter-bootstrap datepicker


【解决方案1】:

正如thebrieflabb 在他的评论中提到的,您可以通过以下方式解决此问题:

var endDate = new Date();
endDate.setDate(startDate .getDate()+30);

您可以找到更多您的解决方案in this thread

希望这会有所帮助。

【讨论】:

  • 谢谢。我需要它根据用户选择的开始日期添加 30 天,而不是从今天起 30 天!
  • 感谢您的回答,您的回答完美。
【解决方案2】:

插件似乎只接受minDatemaxDate的特定日期格式,即mm/dd/yyyy

不幸的是,仅使用new Date(); 不起作用,因为它返回完整的日期,格式不正确。

下面的代码似乎对我有用,它将始终使用今天作为最小值和 +30 作为最大值。

/* Get the code into mm/dd/yyyy format */
function getFormatDate(d){
    return d.getMonth()+1 + '/' + d.getDate() + '/' + d.getFullYear()
}

$(document).ready(function() {
    var minDate = getFormatDate(new Date()),
    mdTemp = new Date(),
    maxDate = getFormatDate(new Date(mdTemp.setDate(mdTemp.getDate() + 30)));

    $('#daterange').daterangepicker(
    {
       minDate: minDate,
       maxDate: maxDate
    }
    );
});

【讨论】:

  • 谢谢。我需要它根据用户选择的开始日期添加 30 天,而不是从今天起 30 天!
  • 没有标准,认真的。它接受“mm/dd/yy”,在 .NET 中是“MM/dd/yyyy”,在 moment.js 中是 moment().format('MM/DD/YYYY')。他们似乎都在大小写上使用了不同的变体。同时,moment 仅接受 ISO 日期格式('YYYY-MM-DD'),而 datetimepicker(使用 MOMENT)期望某些字段的时刻实例,但显然是格式字符串 'mm/dd/yyyy'(实际上是时刻.format('MM/DD/YYYY') 用于最小值/最大值?这太疯狂了,为什么 Flash 永远不会消亡,直到网络获得它的 $hit 一起。
【解决方案3】:

你可以这样使用:

var date2 = new Date();
date2.setDate(date2.getDate()-1);
console.log(date2);
$('#daterange').daterangepicker({
    showDropdowns: false,
    format:'MM/DD/YYYY',
    maxDate:date2,
    autoclose: true,
    autoApply:true,

});

希望对大家有所帮助。

【讨论】:

  • 显然不行,日历会变成NaN
【解决方案4】:

您需要设置 maxDate 和 minDate 如下: 你应该存储在变量中然后使用它。

var prev_date = new Date();
prev_date.setDate(prev_date.getDate() - 1);

$('input[name="daterange"]').daterangepicker({
        打开:'左',
        显示下拉菜单:真,
        自动更新输入:假,
        最大日期:prev_date,
        语言环境:{
            cancelLabel: '清除',
            格式:'MMM DD,YYYY'
        }
    });

和 如果你想让用户只选择上一个日期
前任。出生日期你可以使用这个道具。
startDate : prev_date

【讨论】:

    【解决方案5】:
    Date = new Date(),
    maxDate = new Date(Date.setDate(Date.getDate() + 30)),
    $('#daterange').daterangepicker({
        minDate: new Date(), 
        maxDate: maxDate ,
        locale: {
           format: 'DD-MM-YYYY',
           firstDay: 1
        },
    });
    

    【讨论】:

      猜你喜欢
      • 2018-09-12
      • 2018-07-01
      • 1970-01-01
      • 2017-07-07
      • 2019-01-02
      • 2013-08-08
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      相关资源
      最近更新 更多