我想禁用除start_date和end_date范围以外的所有日期,例如:date从2015年5月26日开始到2015年5月29日,因此禁用开始之前和结束之后的所有日期。为此,我使用的是Pickadate和Pickadate月份索引从零开始。
$('.datepicker2').pickadate({
format: 'dd/md/yyyy',
selectMonths: true,
selectYears: 25,
min: [$("#leave_start_date").val().split("/").map(Number).reverse()],
max: [$("#leave_end_date").val().split("/").map(Number).reverse()]
});
但它不起作用。它禁用所有剩余日期为当前日期。
请指导我如何解决此问题。我只想禁用那些不在start_date和end_date值范围内的日期。
最佳答案
我认为第一个问题是min
和max
的值可以采用类似[2014,05,26]
的数组,但是对于该map
,我怀疑您正在发送嵌套在数组[[2014,05,26]]
中的数组
'15/05/2015'.split('/').map(Number)
JS> [15, 5, 2015]
'15/05/2015'.split('/').map(Number).reverse()
JS> [2015, 5, 15] <<<<< this is what (i think) pickadate wants
['15/05/2015'.split('/').map(Number).reverse()]
JS> [Array[3]] <<<<< this is what (i think) you are sending
另外,正如您在标题中所述,
pickadate
期望的月计数器从0开始。function formatDateForPickadate(date_string) {
vals = date_string.split('/').map(Number).reverse()
vals[1] -= 1
return vals
}
你可以做:
min: formatDateForPickadate($("#leave_start_date").val()),
max: formatDateForPickadate($("#leave_end_date").val())
并且偏移月份将得到正确的固定。