如何在daterangepicker和其他日期显示多个日期范围(可用日期)应该被禁用

时间:2017-01-16 10:08:23

标签: jquery datepicker jquery-ui-datepicker daterangepicker

我正在制作一个应用程序,我必须在daterangepicker中显示多个可用日期(日期范围),其他日期应相应地禁用。目前我正在使用http://www.daterangepicker.com/#options,这是我的示例代码。

$('#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日期范围: - 2017年10月1日至2017年1月20日

     

第2日期范围: - 2017年1月25日至2017年1月30日

这些日期应该在一个日历中。

1 个答案:

答案 0 :(得分:0)

我已经创建了相同的功能,这里是一个示例代码: -

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 + ')");
    });