Bonjour,

Je débute completement sur Javascript et j'ai très peu de connaissance. J'ai récupérer un code déjà réalisé mais je rencontre plusieurs problèmes :

  • J'aimerais que les jours de la semaine s'affiche de cette façon > Lun, Mar, Mer, Jeu, Ven, Sam, Dim
  • J'aimerais également avoir deux boutons de navigations pour pouvois switcher de mois et bien sûr que le calendrier renvois toujours à la date d'aujourd'hui.

Voilà le code :


function addCalendar(container){
  //get dates
  var today = new Date();
  var day = today.getDay()
  var date = today.getDate();
  var month = today.getMonth();
  var year = today.getFullYear();
  var first = new Date();
  first.setDate(1);
  var startDay = first.getDay();
  var dayLabels = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];
  var monthLengths = [31,28,31,30,31,30,31,31,30,31,30,31];
  var monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
  var dayNames = ['Sat', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri'];

  var current = 1 - startDay;

  //assemble calendar
  var calendar = '<label class="date"></label><label class="month">'+monthNames[month]+'</label> <label class="year">'+year+'</label>';

  calendar += '<table><tr>';
  dayLabels.forEach(function(label){
    calendar += '<th>'+label+'</th>';
  })
  calendar += '</tr><tr>';
  var dayClasses = '';
  while( current <= 30){
    if (current > 0){
      dayClasses = '';
      today.setDate(current);
      if (today.getDay() == 0 || today.getDay() == 6){
        dayClasses += ' disabled';
      }
      if (current < date){
        dayClasses += ' disabled';
      }
      if (current == date){
        dayClasses += ' today';
      }
      calendar += '<td class="'+dayClasses+'" data-day="'+dayNames[(current + startDay)%7]+'">'+current+'</td>';
    } else {
      calendar += '<td></td>';
    }

    if ( (current + startDay) % 7 == 0){
      calendar += '</tr><tr>';
    }

    current++
  }

  calendar += '</tr></table>';
  container.html(calendar);

  invokeCalendarListener();
}

Pourriez vous m'apporter votre aide et votre expertise sur le sujet ?

Merci beaucoup pour votre aide.

Aucune réponse