2016-12-17 1 views
1

Bootstrap-Datepicker에서 BeforeShowDay 기능을 사용하여 날짜 범위 배열을 거의 사용하지 않으려합니다.Bootstrap-datepicker에서 날짜 범위를 거의 사용하지 않음

나는 이러한 코드가 있습니다

var dateArray2 = getDates(new Date("2016-12-20 14:57:28"), (new Date("2016-12-22 14:57:28")).addDays(0)); 

var dateArray3 = getDates(new Date("2016-12-22 14:57:28"), (new Date("2016-12-25 14:57:28")).addDays(0)); 

var dateArr = new Array(); 

dateArr.push(dateArray2); 
dateArr.push(dateArray3); 

//Datepicker init 
    $('.date').datepicker({ 
      format: 'dd-mm-yyyy', 
      startDate: date, 
      autoclose: true, 
      beforeShowDay: function (date) { 
       var string = jQuery.datepicker.formatDate('yy-mm-dd', date); 
       $.each(dateArr,function (key, value) { 
        return value.indexOf(string) == -1; 
       }); 
      } 
     }); 

그러나 날짜가 작동하지으로 배열을 루프를 내가 사용할 수없는 날짜가 없습니다.

날짜가 2,3 이상인 배열을 어떻게 비활성화 할 수 있습니까?

감사합니다.

+0

당신의 작업 바이올린을 – ScanQR

답변

2

jQuery.each 대신 jQuery.inArray을 사용할 수 있습니다.

날짜 매개 변수를 'yy-mm-dd'형식으로 변환하려면 moment.js를 사용할 수 있습니다.

코드 조각 : 나는 또한 해결책 찾기

var date = new Date(); 
 
var forbiddeneDates = ['16-12-18','16-12-19','16-12-20']; 
 

 

 
$('.date').datepicker({ 
 
    format: 'dd-mm-yyyy', 
 
    startDate: date, 
 
    autoclose: true, 
 
    beforeShowDay: function (date) { 
 
    var dateStr = moment(date).format('YY-MM-DD'); 
 
    return $.inArray(dateStr,forbiddeneDates) == -1; 
 
    } 
 
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/css/bootstrap-datepicker.min.css"> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/js/bootstrap-datepicker.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script> 
 

 
<div class="input-group date"> 
 
    <input type="text" class="form-control"> 
 
    <div class="input-group-addon"> 
 
     <span class="glyphicon glyphicon-th"></span> 
 
    </div> 
 
</div>

+0

감사를 추가하십시오 - 난 그냥이 사용하는 데이터베이스에서 getted 내 배열에서 큰 배열을 만듭니다 : var에 dateArr = [] .concat.apply ([], arr); –

관련 문제