jQuery: due funzioni utili per la gestione dei calendari per il booking online

jQuery: due funzioni utili per la gestione dei calendari per il booking online

Nei plugin per il booking (prenotazione) online jQuery si rivela fondamentale nella gestione dei calendari.

La prima funzione calcola una data nel futuro basandosi sul numero di giorni:


"use strict";

(function( $ ) {
  $.future = function( days ) {
    var dayMs = 86400000; // 1 giorno
    var timestamp = dayMs * days;
    var now = +new Date();
    var futureTs = now + timestamp;
    return new Date( futureTs );
  };
})( jQuery );

La seconda funzione filtra le date in base al giorno della settimana. Volendo la data iniziale può essere sostituita con quella corrente evitando di calcolarla nel futuro:


"use strict";

(function( $ ) {

  $.filterDatesByDay = function( days, filterDay ) {
      var startDay = $.future( days );
      var dayMs = 86400000;
      var dates = [];
      
      for( var i = 1; i <= 365; i++ ) {
          var day = dayMs * i;
          var start = startDay.getTime() + day;
          var nDate = new Date( start );
          if( nDate.getDay() !== parseInt( filterDay, 10 ) ) {
            var yy = nDate.getFullYear().toString();
            var mm = ( ( nDate.getMonth() + 1 ) < 10 ) ? '0' + ( nDate.getMonth() + 1 ).toString() : ( nDate.getMonth() + 1 ).toString();
            var dd = ( nDate.getDate() < 10 ) ? '0' + ( nDate.getDate() ).toString() : ( nDate.getDate() ).toString();
            var formattedDate = yy + "-" + mm + "-" + dd;
            dates.push( formattedDate );
          }
      }
      return dates;
  };

})( jQuery );

Torna su