jquery datepicker: выберите дату как 6 месяцев назад - PullRequest
0 голосов
/ 23 апреля 2010

Дата начала: пользователь может выбрать дату начала как 6 месяцев. пример: если сегодня 23.04.2010, я могу вернуться к 23.11.2009, но не более чем на 6 месяцев

<script type="text/javascript"> 
$(document).ready(function () { 

  $('#endDate').datepicker({ showOn: 'button', 
      buttonImage: '../images/Calendar.png', 
      buttonImageOnly: true, onSelect: function () { }, 
      onClose: function () { $(this).focus(); } 
    }); 


  $('#startDate').datepicker({ showOn: 'button', 
      buttonImage: '../images/Calendar.png', 
      buttonImageOnly: true, onSelect: 
        function (dateText, inst) { 
          $('#endDate').datepicker("option", 'minDate', new Date(dateText)); 
        } 
      , 
      onClose: function () { $(this).focus(); } 
    }); 


}); 

код обновления:

   var currentDate = new Date();
    var currentMonth = currentDate.getMonth() + 1;
    var sixMonths = currentMonth + 6 
    currentDate.setMonth(currentDate.currentMonth, sixMonths);
    var myNewCurrentDate = new Date(currentDate)
    $('#startDate').datepicker('option', { minDate: myNewCurrentDate });

я получаю currentDate = NaN

Ответы [ 2 ]

4 голосов
/ 24 апреля 2010

Вы можете сделать это с помощью опции minDate , например:

minDate:'-6m'

Вот обновленный пример из вашего предыдущего вопроса с этим эффектом .

Ваш общий код будет выглядеть так:

$(document).ready(function () { 
  $('#endDate').datepicker({ showOn: 'button', 
      buttonImage: '../images/Calendar.png', 
      buttonImageOnly: true, onSelect: function () { }, 
      onClose: function () { $(this).focus(); } 
  }); 

  $('#startDate').datepicker({ showOn: 'button', 
      buttonImage: '../images/Calendar.png', 
      buttonImageOnly: true, 
      minDate: '-6m',
      onSelect: function (dateText, inst) { 
          $('#endDate').datepicker("option", 'minDate', new Date(dateText)); 
        } 
      , 
      onClose: function () { $(this).focus(); } 
  });
}); 
0 голосов
/ 23 апреля 2010

Просмотр min / maxdate:

$('#startDate').datepicker('option', 'minDate', new Date(2009, 10, 23));

Обратите внимание, что параметр month равен m-1 (April = 3) по причинам, которые я не совсем знаю.

То, как я это сделал (проще читать; может означать то же самое, что и вы):

var currentDate = new Date();
var currentMonth = currentDate.getMonth() + 6 - 1;
var currentYear = currentDate.getYear();
var currentDay = currentDate.getDay();
$('#startDate').datepicker('option', 'minDate', new Date(currentYear, currentMonth, currentDay));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...