Как установить beforeShowDay для длинных дат в начальной загрузке даты? - PullRequest
0 голосов
/ 19 ноября 2018

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

$( "#from" ).datepicker({
    multidate: true,
    beforeShowDay: function (date) {
        var tgl = ['15/08/2018', '16/08/2018', '17/08/2018']; 
        var dt_ddmmyyyy = date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear();              
        if (tgl.indexOf(dt_ddmmyyyy) != -1) {               
            return true;
        } else {
                return false;
        }
    }   
});

код отключит все даты, кроме даты, указанной в массиве, но только максимум 45 дней назад. поэтому дата массива не включена. какие-либо предложения по этой проблеме? Спасибо за вашу помощь

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Просто еще один пример, ("0" + (date.getMonth() + 1)).slice(-2) получит месяц в двухзначном формате.

$('#datepicker').val("08-15-2018");/* for demo purpose */

$('#datepicker').datepicker({
  multidate: true,
  beforeShowDay: function(date) {
    var tgl = ['15/08/2018', '16/08/2018', '17/08/2018'];
    var dt_ddmmyyyy = date.getDate() + '/' + ("0" + (date.getMonth() + 1)).slice(-2) + '/' + date.getFullYear();
    if (tgl.indexOf(dt_ddmmyyyy) != -1) {
      return true;
    } else {
      return false;
    }
  }
});
td.day.disabled {
  opacity: 0.2;
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/css/bootstrap-datepicker.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/js/bootstrap-datepicker.min.js"></script>
<input id="datepicker">
0 голосов
/ 20 ноября 2018

ПОПРОБУЙТЕ это ... Используйте '15/08/2018' до '15/8/2018'

$( "#js-date" ).datepicker({
    multidate: true,
    beforeShowDay: function (date) {
        var tgl = ['15/8/2018', '16/8/2018', '17/8/2018']; 
        var dt_ddmmyyyy = date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear();              
        if (tgl.indexOf(dt_ddmmyyyy) != -1) {               
            return true;
        } else {
                return false;
        }
    }   
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<input type="text" class="form-control" id="js-date">
...