大多数答案和解释都不是为了解释什么是有效的endDateor字符串startDate。Danny 给了我们两个有用的例子。
$('#datepicker').datepicker({
    startDate: '-2m',
    endDate: '+2d'
});
但为什么呢?让我们看一下 的源代码bootstrap-datetimepicker.js。有一些代码开始行 1343 告诉我们它是如何工作的。
if (/^[-+]\d+[dmwy]([\s,]+[-+]\d+[dmwy])*$/.test(date)) {
            var part_re = /([-+]\d+)([dmwy])/,
                parts = date.match(/([-+]\d+)([dmwy])/g),
                part, dir;
            date = new Date();
            for (var i = 0; i < parts.length; i++) {
                part = part_re.exec(parts[i]);
                dir = parseInt(part[1]);
                switch (part[2]) {
                    case 'd':
                        date.setUTCDate(date.getUTCDate() + dir);
                        break;
                    case 'm':
                        date = Datetimepicker.prototype.moveMonth.call(Datetimepicker.prototype, date, dir);
                        break;
                    case 'w':
                        date.setUTCDate(date.getUTCDate() + dir * 7);
                        break;
                    case 'y':
                        date = Datetimepicker.prototype.moveYear.call(Datetimepicker.prototype, date, dir);
                        break;
                }
            }
            return UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), 0);
        }
有四种表达方式。
w 表示周 
m 表示月份 
y 意味着年 
d 意味着一天 
看看正则表达式^[-+]\d+[dmwy]([\s,]+[-+]\d+[dmwy])*$。您可以做的不仅仅是这些-0d或+1m。
像startDate:'+1y,-2m,+0d,-1w'.And 分隔符,可能是其中之一[\f\n\r\t\v,]