1

Hallo ich habe rhis Elemente this elements , die ich in meinem Jquery FullCalendar anzeigen muss.FullCalendar zeigt immer 2Hours Ereignisse

<script type="text/javascript"> 
 

 
     $(document).ready(function() { 
 

 
       calendarcreate(); 
 
       var obj; 
 
      }); 
 

 
      function calendarcreate() { 
 
       $.ajax({ 
 
       type: "POST", 
 
       contentType: "application/json; charset=utf-8", 
 
       data: "{}", 
 
       dataType:"json", 
 
       url: "Calendario.aspx/GetEvents",     
 
       success: function (data) { 
 
        $('#<%=fullcal.ClientID%>').fullCalendar({ 
 
         firstDay: 1, 
 
         monthNames: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'], 
 
         monthNamesShort: ['Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'], 
 
         dayNames: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato'], 
 
         dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'], 
 
         buttonText: { 
 
          today: 'Oggi', 
 
          month: 'Mese', 
 
          day: 'Giorno', 
 
          week: 'Settimana', 
 
          prev: 'Prec', 
 
          next: 'Succ' 
 
         }, 
 
         header: { 
 
          left: 'today', 
 
          center: 'title', 
 
          right: 'prev,next' 
 
         }, 
 
         timeFormat: "H:mm", 
 
         slotLabelFormat: "H:mm", 
 
         slotLabelInterval: '00:30:00', 
 
         defaultView: "agenda", 
 
         allDaySlot: true, 
 
         allDayText: 'Tutto il Giorno', 
 
         minTime: "08:00:00", 
 
         maxTime: "22:00:00", 
 
         displayEventEnd: true, 
 
         axisFormat: 'H:mm', 
 
         titleFormat: 'D MMMM YYYY', 
 
         columnFormat: 'ddd D/M', 
 
         //inserimento appuntamenti da Ajax 
 
         events: $.map(data.d, function (item, i) { 
 
          var event = new Object(); 
 
          event.id = item.EventID; 
 

 
          alert(item.StartHour); 
 
          alert(item.EndHour); 
 
          event.start = new Date(item.DateYear, item.DateMonth - 1, item.DateDay, item.StartHour, item.StartMinute); 
 
          event.end = new Date(item.DateYear, item.DateMonth - 1, item.DateDay, item.EndHour, item.EndMinute); 
 
          event.title = item.EventName; 
 
          event.color = item.Color; 
 

 
          event.allDay = false; 
 

 
          return event; 
 
         }) 
 
        }); 
 
       }, 
 
       error: function (XMLHttpRequest, textStatus, errorThrown) 
 
       { debugger; } 
 
      }); 
 

 
     } 
 
    </script>

Wie Sie sehen können, Ereignisse in Daten 2016.09.16 sind:

- Id = 6, From 11.30 To 12.30 
- Id = 7, From 10.30 To 11.30 

In den Warnungen, die ich in Ereigniserzeugung von FullCalendar setzen, zeigt mir das Recht Ende der Stunde. Also, für Veranstaltungen in Daten 2016.09.16 es alarmiert mich 12 und 11.

Das Problem ist, dass FullCalendar zeigen mir Ereignisse wie folgt aus:

- Id = 6 From 11.30 To 13.30 
- Id = 7 From 10.30 To 12.30 

Also immer 2 Stunden Länge

FullCalendar Rendering events

Antwort

1

FullCalendar funktioniert nativ mit moment.js Objekten anstatt mit den JavaScript Date Objekten. Die Bibliothek moment.js ist bereits in fullCalendar enthalten.

es ist also am besten, wenn Sie diese ersetzen:

event.start = new Date(item.DateYear, item.DateMonth - 1, item.DateDay, item.StartHour, item.StartMinute); 
event.end = new Date(item.DateYear, item.DateMonth - 1, item.DateDay, item.EndHour, item.EndMinute); 

mit diesem:

event.start = moment({ y: item.DateYear, M: item.DateMonth - 1, d: item.DateDay, h: item.StartHour, m: item.StartMinute, s: 0, ms: 0}); 
event.end = moment({ y: item.DateYear, M: item.DateMonth - 1, d: item.DateDay, h: item.EndHour, m: item.EndMinute, s: 0, ms: 0}); 

Darüber hinaus sind Sie in der +01: 00 Zeitzone (Italien)? Das Problem könnte dadurch verursacht werden. Wenn dies der Fall ist, gibt es Optionen in fullCalendar, die die Zeitzone richtig behandeln können.

+1

Ich löste das Ersetzen des neuen Datums durch den Moment! – Martina

Verwandte Themen