var data = [];
data[0] = [];
data[0]['start_date'] = 1433469600; // 2015-06-05 10:00:00
data[0]['end_date'] = 1433671200; // 2015-06-07 18:00:00
data[1] = [];
data[1]['start_date'] = 1433952000; // 2015-06-11 00:00:00
data[1]['end_date'] = 1434034800; // 2015-06-11 23:00:00
data[2] = [];
data[2]['start_date'] = 1434765600; // 2015-06-20 10:00:00
data[2]['end_date'] = 1434902400; // 2015-06-22 00:00:00
var start_date = data[0]['start_date'],
end_date = data[0]['end_date'],
nth_day_start = 0,
nth_day_end = 0,
date_all = [],
date_valid = [],
date_invalid = [];
for(var i=0, len_i=data.length; i<len_i; i++){
if(data[i]['start_date'] < start_date){
start_date = data[i]['start_date'];
}
if(data[i]['end_date'] > end_date){
end_date = data[i]['end_date'];
}
nth_day_start = Math.floor((data[i]['start_date'] + 28800) / 86400);
nth_day_end = Math.floor((data[i]['end_date'] + 28800) / 86400);
num_days = nth_day_end - nth_day_start + 1;
for(var j=0, tmp=data[i]['start_date']*1000, str_time=new Date(tmp); j<num_days; j++){
date_valid.push(str_time.getFullYear() + '-' + (str_time.getMonth()+1) + '-' + str_time.getDate());
tmp += 86400000;
str_time = new Date(tmp);
}
}
// console.log(start_date+'-'+end_date);
// console.log(date_valid);
nth_day_start = Math.floor((start_date + 28800) / 86400);
nth_day_end = Math.floor((end_date + 28800) / 86400);
num_days = nth_day_end - nth_day_start + 1;
for(var i=0, tmp=start_date*1000, str_time=new Date(tmp); i<num_days; i++){
date_all.push(str_time.getFullYear() + '-' + (str_time.getMonth()+1) + '-' + str_time.getDate());
tmp += 86400000;
str_time = new Date(tmp);
}
// console.log(date_all);
for(var i=0, len_i=date_valid.length; i<len_i; i++){
for(var j=0, len_j=date_all.length; j<len_j; j++){
if(date_valid[i] == date_all[j]){
date_all.splice(j, 1);
}
}
}
date_invalid = date_all;
// console.log(date_invalid);
$('#date').datepicker({
format: "yyyy-mm-dd",
language: "zh-CN",
keyboardNavigation: false,
autoclose: true,
todayHighlight: true,
datesDisabled: date_invalid,
endDate: end_date,
startDate: start_date,
disableTouchKeyboard: true
});