Changing date to be shown in datepicker

4

I'm making a calendar with datepicker , and I need this calendar to show only Mondays, and most importantly, show one month after the current date, ie, it will have to show from 05/27 only Mondays.

I've been able to get him to show you the second ones, now my question is, how do you show him from next month?

JS Code:

$(function() {
          $( "#data-inicio" ).datepicker({
             beforeShowDay: function(date){ 
              return [date.getDay() == 1,""]} 
          });
    
asked by anonymous 27.04.2015 / 19:43

2 answers

4

You can add minDate to set the minimum selection date, the beforeShowDay to enable the available days (you have succeeded, but only to exemplify everything):

$(function() {
    // Data atual, já considerado a partir do próximo mês
    var today = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() + 30);
    // Verifica se esta data cai em uma segunda-feira
    // Se não cair, precisa obter a próxima segunda depois deste dia
    if (today.getDay() != 1) {
        // Primeiro dia do próximo mês para calcular quantos dias faltam para o mês atual acabar
        var nextMonth = new Date(today.getFullYear(), today.getMonth() + 1, 1);
        // Total de dias para acabar o mês. A subtração é feita em milessegundos, então as multiplicações são realizadas para obter este valor em dias
        var days = Math.floor((nextMonth - today) / (1000*60*60*24))
        // Se faltam menos de 7 dias para virar o mês, quer dizer que não existirá outra segunda-feira neste, então a data mínima do datepicker será no próximo mês.
        if (days < 7)
            today = new Date(today.getFullYear(), today.getMonth(), today.getDate() + days);
    }

    $("#datepicker").datepicker({
        beforeShowDay: function(date){ return [date.getDay() == 1, ""] },
        minDate: today
    });
});

JSFiddle

    
27.04.2015 / 20:08
2

try setting up his mindate ... then go minDate with the month + 1. link

    
27.04.2015 / 19:50