jQuery: disabilitare alcuni giorni della settimana nel plugin datepicker di Bootstrap

jQuery: disabilitare alcuni giorni della settimana nel plugin datepicker di Bootstrap

È possibile disabilitare determinati giorni della settimana con il plugin datepicker di Bootstrap.

La soluzione è la seguente:


"use strict";

$.filterDates = function( filterDay ) {
  var dayMs = 86400000;
  var ts = [];
  var start = new Date();
  for( var i = 1; i <= 365; i++ ) {
      var d = dayMs * i;
      var s = start.getTime() + d;
      var nd = new Date( s );
      if( nd.getDay() !== parseInt( filterDay, 10 ) ) {
        var yy = nd.getFullYear().toString();
        var mm = ( ( nd.getMonth() + 1 ) < 10 ) ? '0' + ( nd.getMonth() + 1 ).toString() : ( nd.getMonth() + 1 ).toString();
        var dd = ( nd.getDate() < 10 ) ? '0' + ( nd.getDate() ).toString() : ( nd.getDate() ).toString();
        var f = yy + "-" + mm + "-" + dd;
        ts.push( f );
      }
  }
  var yy2 = start.getFullYear().toString();
  var mm2 = ( ( start.getMonth() + 1 ) < 10 ) ? '0' + ( start.getMonth() + 1 ).toString() : ( start.getMonth() + 1 ).toString();
  var dd2 = ( start.getDate() < 10 ) ? '0' + ( start.getDate() ).toString() : ( start.getDate() ).toString();
  var f2 = yy2 + "-" + mm2 + "-" + dd2;
  ts.unshift( f2 );
  return ts;
};

I numeri corrispondenti ai giorni della settimana vanno da 0 a 6. Quindi se volessimo abilitare solo i mercoledì, scriveremo:


"use strict";

$( "#date" ).datepicker({
     format: "yy-mm-dd",
     datesDisabled: $.filterDates( 3 )
});

Documentazione

bootstrap-datepicker

Torna su