이것은 내 디자인 코드입니다. 요일 선택 내에서 날짜 카운트 금액을 얻으려고합니다. 일반적으로 날짜 수를 정확하게 얻습니다. 그러나 비활성화 된 날짜 내에서 날짜 범위를 선택하면 실제 계산을 얻을 수 없습니다. 제발 도와주세요.
var arrayable = ['2015/07/22', '2015/07/23'];
$('#txtDate1, #txtDate2').datepicker({
minDate: 0,
dateFormat: 'yy/mm/dd',
beforeShowDay: function (date) {
var datestring = jQuery.datepicker.formatDate('yy/mm/dd', date);
if ($.inArray(datestring, arrayable) != -1 ) {
return [false];
}
var weekenddate = $.datepicker.noWeekends(date);
return weekenddate;
}
});
$('button').click(function() {
var start = $('#txtDate1').datepicker('getDate');
var end = $('#txtDate2').datepicker('getDate');
var days = (end - start)/1000/60/60/24;
alert(days);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
From :<input type='text' id='txtDate1' /> <br/>
To :<input type='text' id='txtDate2' />
<br><button>number of days</button>
마침내 나는 내 답을 찾았습니다. 언젠가 이것이 누군가에게 도움이되기를 바랍니다. 주말을 비활성화했고 특정 날짜는 배열에서 나왔습니다. 그 후 선택한 모든 비활성화 날짜를 선택 영역으로 계산합니다.이 jsfiddle을 살펴보십시오.
var arrayable = ['2015-08-25','2015-08-26'];
function disableSpecificDates(date){
var datestring = jQuery.datepicker.formatDate('yy-mm-dd', date);
for(var i =0; i<arrayable.length;i++){
if($.inArray(datestring,arrayable)!=-1){
return[false];
}
}
var weekend= $.datepicker.noWeekends(date);
return weekend;
}
$('#txtDate1, #txtDate2').datepicker({
minDate :0,
dateFormat: 'yy-mm-dd',
beforeShowDay: disableSpecificDates
});
$('button').click(function() {
var start = $('#txtDate1').datepicker('getDate');
var end = $('#txtDate2').datepicker('getDate');
var totalBusinessDays = 0;
// normalize both start and end to beginning of the day
start.setHours(0, 0, 0, 0);
end.setHours(0, 0, 0, 0);
var current = new Date(start);
current.setDate(current.getDate() + 1);
var day;
while (current <= end) {
day = current.getDay();
var mystring = jQuery.datepicker.formatDate('yy-mm-dd', current);
if (day < 1 || day > 5 || $.inArray(mystring,arrayable)!=-1) {
++totalBusinessDays;
}
current.setDate(current.getDate() + 1);
}
var days = (((end - start)/1000/60/60/24)-totalBusinessDays);
alert(days);
});
<script language="javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script language="javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.22/jquery-ui.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
From :<input type='text' id='txtDate1' /> <br/>
To :<input type='text' id='txtDate2' />
<br><button>number of days</button>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다