2015-07-06 17 views
0

這是我的設計代碼。我想在這幾天內選擇日期計數金額。通常我會正確計算日期。但是,當我在禁用日期內選擇日期範圍時,我無法獲得真正的計數。請幫幫我。如何刪除日期選擇器中的禁用日期計數

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> 
+0

您不能選擇禁用的日期,但你可以在文本框中手動輸入。它似乎工作正常,並給出了與我嘗試的所有組合的日期差異。這是jsfiddle; http://jsfiddle.net/man_luck/3jwqyag2/ –

+0

對不起,你的鏈接不顯示任何運氣 –

+0

你是什麼意思?該鏈接無法正常工作? –

回答

0

最後我找到了自己的答案。我希望有一天這會對某人有所幫助。我禁用了週末,具體日期來自一個數組。之後,我刪除所有選定的禁用日期計數與選擇區域。看看這個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++){ 
 
    \t if($.inArray(datestring,arrayable)!=-1){ 
 
    \t return[false]; 
 
    \t } 
 
    } 
 
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; 
 
     } 
 
\t  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>


相關問題