Как отобразить диапазоны дат для нескольких строк (доступные даты) в DateRanger и другие даты должны быть отключены

Я делаю заявление, в котором мне нужно отобразить несколько доступных дат (диапазонов дат) в Daterangepicker, и другие даты должны быть отключены соответственно. В настоящее время я использую http://www.daterangepicker.com/, и вот мой пример кода.

$('#config-demo').daterangepicker({
"ranges": { 
            "Range1":  ["01/10/2017T07:37:40.792Z","01/10/2017T07:37:40.792Z"],
            "Range2": ["01/20/2017T07:37:40.792Z","01/30/2017T07:37:40.792Z"]
          },
 "linkedCalendars": false,
 "autoUpdateInput": true,
 "showCustomRangeLabel": false,
 "alwaysShowCalendars": true,
 "startDate": "01/10/2017",
 "endDate": "01/16/2017"
}, function(start, end, label) {
   console.log("New date range selected: ' + start.format('YYYY-MM-DD') + '  to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + label + ')");
});

В этом я определил два диапазона дат, и он не работает для меня. Я хочу показать все доступные даты (диапазоны дат) один раз в календаре. подобно

1-й диапазон дат:- с 01.10.2017 по 20.01.2017

2-й диапазон дат:- с 25.01.2017 по 30.01.2017

Эти даты должны быть в одном календаре.

1 ответ

Я создал функциональность для того же, вот пример кода:-

var date_ranges = {

"staff_availabilities":[ 

    {"available_from":"2017/01/12","available_to":"2017/01/28","availibility_id":1},
    {"available_from":"2017/01/21","available_to":"2017/02/19","availibility_id":1}
]
};

var i = 0;

var f_data = [];
var obj = {};

$.each(date_ranges.staff_availabilities, function( index, value ) {

   var start_date = value.available_from;
   var end_date = value.available_to;
   var start_date_range = moment(start_date, "YYYY/MM/DD HH:mm:ss").format('MMMM D, Y');
   var end_date_range = moment(end_date, "YYYY/MM/DD HH:mm:ss").format('MMMM D, Y');
   obj[start_date_range+" - "+end_date_range] = [value.available_from , value.available_to];

   i++;

});

$('#config-demo').daterangepicker({
        "ranges":obj,
        "linkedCalendars": false,
        "autoUpdateInput": true,
        "showCustomRangeLabel": false,
        "alwaysShowCalendars": true,
        locale: {
          format: 'YYYY-MM-DD'
        },
        "startDate": mini_date,
        "endDate": max_date
    }, function(start, end, label) {
      console.log("New date range selected: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + label + ')");
    });
Другие вопросы по тегам