1

嗨我有rhis元素this elements ,我必須在我的Jquery FullCalendar中顯示。FullCalendar顯示始終2Hours事件

<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>

如何你可以看到,在數據2016年9月16日的事件是:

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

在此我把事件創建FullCalendar的警報顯示我的權利結束小時。因此,在數據2016年9月16日的事件也提醒了我12和11

的問題是,FullCalendar告訴我這樣的活動:

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

所以總是2小時長度的

FullCalendar Rendering events

回答

1

FullCalendar與moment.js對象原生地工作,而不是與JavaScript Date對象一起工作。 moment.js庫已包含在fullCalendar中。

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.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}); 

而且,你在+01:00時區(意大利)

因此,如果您更換這是最好的?問題可能是由此造成的。如果是這種情況,那麼fullCalendar中的選項可以正確處理時區。

+1

我解決了更換新的日期與時刻! – Martina