2015-07-01 4 views
1

я использую следующую функцию, но хочет исключить последние 20 дней с моего выбора датыJQuery DatePicker - Exluding динамического диапазона дат

Таким образом, пользователь может: -

Выберите любую будущую дату в следующем году

может выбрать любую дату более 20-365 дней назад

но не может выбрать дату между сегодняшним днем ​​и 20 дней назад.

Я не уверен, как исключить последние 20 дней, любая помощь оценивается.

$(function() { 

     $("#datepicker").datepicker({ 

    dateFormat: "dd/mm/yy", 
    maxDate: '365', 
    minDate: '-365' 
}); 

    }); 
+0

'MinDate: '-20' ' – Sadikhasan

ответ

0

beforeShowDay метод DatePicker позволяет запускать функцию и возвращать ложь, если вы не хотите, чтобы день, чтобы быть по выбору.

Смотрите API Документация здесь: http://api.jqueryui.com/datepicker/#option-beforeShowDay

$(function() { 

    $("#datepicker").datepicker({ 
    dateFormat: "dd/mm/yy", 
    maxDate: '365', 
    minDate: '-365', 
    beforeShowDay: function(date){ 
     //Get current timestamp 
     var current = new Date().getTime(); 
     //Get timestamp for 20 days ago 
     var timestamp = current - (20 * 24 * 60 * 60 * 1000); 
     return [!(date.getTime() > timestamp && date.getTime() < current)]; 
    } 
    }); 

}); 

Таким образом, приведенный выше код должен позволить пользователю выбрать даты между 365 дней назад и 365 дней вперед, исключая последние 20 дней.

JsFiddle: https://jsfiddle.net/aka1s8p0/

+0

Извините, у меня была небольшая ошибка в моем коде, теперь она должна работать. –

+0

Работает как очарование - спасибо :) – W42

+0

Рад помочь! Если вы удовлетворены ответом, подумайте о том, чтобы принять его, нажав галочку. Это указывает более широкому сообществу на то, что вы нашли решение и предоставили нам оба представителя. Это не обязательно. :) –

0

Вы можете сделать простое решение, как это, и вы можете OFC добавить свойства к вашему .datepicker

$(function() { 
 
      var someDate = new Date(); 
 
      var dd = someDate.getDate() + 20; 
 
      var mm = someDate.getMonth() + 1; 
 
      var y = someDate.getFullYear(); 
 

 
      var someFormattedDate = y + ',' + mm + '/' + dd; 
 
      $("#datepicker").datepicker({ 
 
       inline: true, 
 
       minDate: new Date(someFormattedDate) 
 
      }); 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> 
 
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 

 
    <p>Date: <input type="text" id="datepicker"></p>

+0

Это не позволяет выбрать дни больше, чем 20 дней назад? –

+0

ahh прочитал вопрос неправильно, мой плохой. исправит код. –

Смежные вопросы