Как отобразить диапазоны дат для нескольких строк (доступные даты) в 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 + ')");
});