Bootstrap daterangepicker选择开始日期+ 30天作为maxDate

时间:2013-05-10 08:59:38

标签: javascript jquery twitter-bootstrap datepicker

我想知道是否有人可以帮助我。使用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);
});

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

万分感谢。

4 个答案:

答案 0 :(得分:4)

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

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

下面的代码似乎对我有用,它总是使用今天的min和+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
    }
    );
});

答案 1 :(得分:1)

正如thebrieflabb在评论中提到的,你可以解决这个问题如下:

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

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

希望这有帮助。

答案 2 :(得分:0)

您可以这样使用:

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,

});

希望它能帮助任何人。

答案 3 :(得分:0)

您需要像下面这样设置maxDate和minDate: 您应该将其存储在变量中,然后使用它。

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

$('input[name="daterange"]').daterangepicker({
        opens: 'left',
        showDropdowns: true,
        autoUpdateInput: false,
        maxDate: prev_date,
        locale: {
            cancelLabel: 'Clear',
            format: 'MMM DD, YYYY'
        }
    }); 

和 如果您只允许用户选择上一个日期
例如出生日期,您可以使用此道具。
startDate : prev_date