Я пытаюсь использовать beforeShowDay
, чтобы отключить и выделить дни в календаре. Я нашел этот код Fiddle, который работает. Когда я возвращаюсь false
, он работает и отключает этот день, но я пытаюсь вернуть [false, 'holiday', '']
с помощью класса CSS, но он не работает или не отключает даты.
function add_zero(num){
if (num<10){
return '0'+num;
}else{
return num;
}
}
$('.date').datepicker({
format: "mm-dd-yyyy",
autoclose: true,
daysOfWeekDisabled: [0],
weekStart: [1],
beforeShowDay: function(Date) {
var array = <?php echo json_encode($arry); ?>;
var curr_day = add_zero(Date.getDate());
var curr_month = add_zero(Date.getMonth() + 1);
var curr_year = Date.getFullYear();
var curr_date = curr_month + '-' + curr_day + '-' + curr_year;
for (i = 0; i < array.length; i++) {
if (curr_date == array[i]) {
// return false;
return [false, 'holiday', ''];
}
}
//return [true,''];
return true;
}
}).on('changeDate', cal_date);
console.info(curr_date+' '+array[i]); in for loop , вывод 01.05.2019 01.05.2019
опишите здесь функцию add_zero
function add_zero(num){ if (num<10){ return '0'+num; }else{ вернуть число; } } используйте для добавления 0 к одному числу, так же, как дата возврата массива [i], например: 5-5-2019 конвертировать в 05-05-2019
В основном проблема возникает в ваших форматах даты php.
var highlight = ['2019/05/19', '2019/05/20'];
//tips are optional but good to have
var tips = ['some description', 'some other description'];
var disable_dates = ['2019/05/01', '2019/05/08', '2019/05/15', '2019/05/22', '2019/05/29']
$('.date').datepicker({
format: "mm-dd-yyyy",
autoclose: true,
daysOfWeekDisabled: [0],
weekStart: [1],
beforeShowDay: function (date) {
var datestring = jQuery.datepicker.formatDate('yy/mm/dd', date);
var hindex = $.inArray(datestring, highlight);
if (hindex > -1) {
return [true, 'highlight yourcustomcss', tips[hindex]];
}
var aindex = $.inArray(datestring, disable_dates);
if (aindex == -1)
return [true,'custom_enabled']
else
return [false,'custom_disabled']
}
})
это невозможно. при размещении кода consol.log(curr.date+' '+array[i]) в условии if печатаются все праздники, потому что, если условие истинно,
Какие-то ошибки в консоли? Что получается из
var array = <?php echo json_encode($arry); ?>;
?