2014-01-11 126 views
0

我有一個使用日期選擇器向日期添加日期的問題。我知道這已經被問了很多次,但是我們有不同的代碼實現,這就是爲什麼我需要幫助誰知道這個的人。添加日期時,必須排除星期一和星期日的。我有這樣的代碼:添加天日期選擇器JS

<script type="text/javascript"> 
     $(document).ready(function() { 
      $("#dt1").datepicker({ 
       dateFormat: "dd-M-yy", 
       minDate: 0, 
       onSelect: function (date) { 
        var date2 = $('#dt1').datepicker('getDate'); 
        date2.setDate(date2.getDate() + 2); 
        if (date2.getDay() != 0 && date2.getDay() != 6) // Skip weekends 
        { $('#dt2').datepicker('setDate', date2); 
        //sets minDate to dt1 date + 1 
        $('#dt2').datepicker('option', 'minDate', date2); 
       } 
       } 
      }); 
      $('#dt2').datepicker({ 
       dateFormat: "dd-M-yy", 
       onClose: function() { 
        var dt1 = $('#dt1').datepicker('getDate'); 
        console.log(dt1); 
        var dt2 = $('#dt2').datepicker('getDate'); 
        if (dt2 <= dt1) { 
         var minDate = $('#dt2').datepicker('option', 'minDate'); 
         $('#dt2').datepicker('setDate', minDate); 
        } 
       } 
      }); 
     }); 
    </script> 

使用<script src="../js/jquery-1.9.1.js"></script>

,這裏是我的輸入字段:

<input type="text" id="dt1" name="date_borrow" pattern="alpha" required/> 
<input type="text" id="dt2" name="date_will_return" pattern="alpha" required/> 

所以,當我點擊thisthis,結果必然是this

我上面嘗試添加日期不起作用。我從那裏錯過了什麼?

回答

1
$(document).ready(function() { 
    $("#dt1").datepicker({ 
     dateFormat: 'dd-M-yy', 
     minDate: 0, 
     beforeShowDay: function (date) { 
      var day = date.getDay(); 
      return [(day != 0 && day != 6), ''] 
     }, 
     onSelect: function (date) { 
      var date2 = $("#dt1").datepicker('getDate'); 
      if (date2.getDay() == 5) { 
       date2.setDate(date2.getDate() + 3); 
       $("#dt2").datepicker('setDate', date2); 
      } else if (date2.getDay() == 3) { 
       date2.setDate(date2.getDate() + 2); 
       $("#dt2").datepicker('setDate', date2); 
      } else if (date2.getDay() == 4) { 
       date2.setDate(date2.getDate() + 4); 
       $("#dt2").datepicker('setDate', date2); 
      } else { 
       date2.setDate(date2.getDate() + 2); 
       $("#dt2").datepicker('setDate', date2); 
      } 

     } 
    }) 
    $('#dt2').datepicker({ 
     dateFormat: 'dd-M-yy', 
     minDate: 0, 
     beforeShowDay: function (date) { 
      var day = date.getDay(); 
      return [(day != 0 && day != 6), ''] 
     }, 
    }); 
}); 
+0

謝謝,但在你的代碼,當我嘗試點擊23,2天必須相加,其結果必須是週一這意味着加入天不包括週六和週日不工作。 :( – Cecil

+0

@cecil讓我檢查 –

+0

當我點擊23,23被正確添加時,請檢查小提琴 –

0

如果有人想跳過某些工作日,我已經寫了這段代碼。可能這對任何人都有用。

function AddDays(date, offset, skipSunday, skipMonday, skipTueday, skipWednesday, skipThursday, skipFriday, skipSaturday) { 

// If user wants to skip all days then return the same date because this is not possible 
if (skipSunday && skipMonday && skipTueday && skipWednesday && skipThursday && skipFriday && skipSaturday) { 
    return date; 
} 

// Create array for all day numbers 
var skipDays = []; 
if (skipSunday) skipDays.push(0); 
if (skipMonday) skipDays.push(1); 
if (skipTueday) skipDays.push(2); 
if (skipWednesday) skipDays.push(3); 
if (skipThursday) skipDays.push(4); 
if (skipFriday) skipDays.push(5); 
if (skipSaturday) skipDays.push(6); 

while (offset > 0) { 
    date.setDate(date.getDate() + 1); 
    if ($.inArray(date.getDay(), skipDays) <= -1) { 
     offset-- 
    } 
} 
return date; 

}