在 pickadate 中为月份索引添加 +1
add +1 for month indexing in pickadate
我想禁用除 start_date 和 end_date 范围之外的所有日期,例如:日期从 26/05/2015 到 29/05/2015 所以开始之前的所有日期和结束后禁用。为此,我使用 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())
偏移月份将得到正确修复。
我想禁用除 start_date 和 end_date 范围之外的所有日期,例如:日期从 26/05/2015 到 29/05/2015 所以开始之前的所有日期和结束后禁用。为此,我使用 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())
偏移月份将得到正确修复。