2016-03-05 2 views
0

Что мне следует сделать, чтобы ограничить пользователя выбором даты окончания, превышающей один год с даты начала или текущей даты. У меня есть мои коды вроде этого.Установка максимального значения даты на текущую дату ИЛИ 1 год с даты начала

$(function() { 
$('#DateFrom').datepicker({ 
    dateFormat:'d-M-y', 
    changeMonth: true, 
    changeYear: true, 
    minDate: new Date(2000, 7, 23), 
    maxDate: 0, 
    onSelect: function() { 
     var date = $('#DateFrom').datepicker('getDate'); 
     date.setTime(date.getTime() + (1000*60*60*24*365)); 
     $('#DateTo').datepicker('option', 'maxDate', date); 
     $('#DateTo').datepicker('option', 'minDate',$('#DateFrom').datepicker('getDate')); 
     displayToUser(); 
    }, 

}); 

$('#DateTo').datepicker({ 
    dateFormat:'d-M-y', 
    maxDate: 0, 
    changeMonth: true, 
    changeYear: true, 
    onSelect: displayToUser, 
}); 
}); 
function displayToUser() {} 

Здесь хотя и ограничивает пользователя в течение одного года с даты начала, но она позволяет пользователю выбрать дату, помимо текущей даты.

Пример: если дата начала 23-01-2016, это позволяет выбрать дату окончания до 22-01-2017. Я хочу, чтобы это была самая современная дата.

+0

Позвольте мне знать, если мое решение работает :) – Aaron

+0

он работал. но сейчас я столкнулся с еще одной проблемой. можете ли вы помочь мне в том, как очистить значения выбора даты при выборе переключателя? У меня есть два переключателя, и оба показывают календарь при выборе. Мне нужно очистить одно значение календаря при выборе другого переключателя. – user3773893

+0

проблема решена. onclick = "$ ('selector'). Datepicker ('setDate', null) сделал трюк. Дайте мне знать, если есть какое-то лучшее решение. – user3773893

ответ

1

Это делает это?

$(function() { 
    $('#DateFrom').datepicker({ 
     dateFormat:'d-M-y', 
     changeMonth: true, 
     changeYear: true, 
     minDate: new Date(2000, 7, 23), 
     maxDate: 0, 
     onSelect: function() { 
      var date = $('#DateFrom').datepicker('getDate'); 
      date.setTime(date.getTime() + (1000*60*60*24*365)); 
      var todaysDate = new Date(); 
      if(date.getTime() > todaysDate.getTime()) date = todaysDate; 
      $('#DateTo').datepicker('option', 'maxDate', date); 
      $('#DateTo').datepicker('option', 'minDate',$('#DateFrom').datepicker('getDate')); 
      displayToUser(); 
     }, 

    }); 

    $('#DateTo').datepicker({ 
     dateFormat:'d-M-y', 
     maxDate: 0, 
     changeMonth: true, 
     changeYear: true, 
     onSelect: displayToUser, 
    }); 
}); 
function displayToUser() {} 

Я только добавил эти две линии

  var todaysDate = new Date(); 
      if(date.getTime() > todaysDate.getTime()) date = todaysDate; 
+0

Большое спасибо Aaron. – user3773893

+0

Рад, что это работает :) – Aaron

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