Javascript NoGray Календарь наследует следующую доступную дату после того, как выбранные заблокированные даты, если сегодня заблокирован

Я использую NoGray Calendar и имею следующий код:

 my_cal1 = new ng.Calendar({ input: {date:'date1', month:'month1', year:'year1'}, selected_date:new Date(),display_date:new Date(), dates_off:[{date:22, month:6}, events: { onDateClick: function(dt) { this.select_date(dt); } } 

Но когда он в тот же день, что и в тот день, когда я нахожусь, он отображается как пустой.

Как я могу сделать это так, чтобы он отображался и ищет следующую доступную дату для начала после заблокированной даты?

Примерный календарь можно найти здесь: http://www.nogray.com/example.php?ID=260

Области, которые я пытаюсь установить, – start_date и display_date на следующую доступную дату, поэтому, если бы у меня были следующие 3 дня в выходные дни, она показывала бы дату как следующую доступную дату после тех трех дней, когда она начнется.

Можно ли это сделать с помощью функций в программном обеспечении NoGray, или мне нужно использовать PHP-скрипт для поиска следующей доступной даты и вывести нужную дату?

Вы можете использовать метод is_selectable http://www.nogray.com/api/calendar/is_selectable.php, чтобы проверить, выбраны ли даты или нет. Функция is_selectable возвращает массив [true | false, 'reason']. Ниже приведен краткий пример

 my_cal1 = new ng.Calendar({ input: {date:'date1', month:'month1', year:'year1'}, selected_date:new Date(), display_date:new Date(), dates_off:[{date:22, month:6}], // you were messing a ] here events: { onDateClick: function(dt){ this.select_date(dt); }, // code to check if the start date is selectable onLoad: function(){ var st_dt = this.get_start_date().clone(); while(!this.is_selectable(st_dt)[0]){ st_dt = st_dt.from_string('today + 1'); } // checking if no dates are selected if (!ng.defined(this.get_selected_date())){ this.select_date(st_dt); } this.set_start_date(st_dt); } } }); в my_cal1 = new ng.Calendar({ input: {date:'date1', month:'month1', year:'year1'}, selected_date:new Date(), display_date:new Date(), dates_off:[{date:22, month:6}], // you were messing a ] here events: { onDateClick: function(dt){ this.select_date(dt); }, // code to check if the start date is selectable onLoad: function(){ var st_dt = this.get_start_date().clone(); while(!this.is_selectable(st_dt)[0]){ st_dt = st_dt.from_string('today + 1'); } // checking if no dates are selected if (!ng.defined(this.get_selected_date())){ this.select_date(st_dt); } this.set_start_date(st_dt); } } });