大多数答案和解释都不是为了解释什么是有效的endDate
or字符串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'
。分隔符,
可能是其中之一[\f\n\r\t\v,]