2017-02-22 8 views
0

У меня проблема с этим вопросом в течение нескольких дней, и что-то, что я, похоже, не пройден, Если я отправляю однодневное мероприятие в любое время во время британского летнего времени, тогда это событие показывает в FullCalendar как двухдневное событие и возвращает дату на один час, а также перемещает день (см. изображения ниже), SQL - как это должно быть и показывает правильное время, но календарь неправильно отображается.Дневной свет дневного света FullCalendar делает неправильный день и время

Я думаю, что проблема заключается в том, что Json выходит как ASP.net datetime, а не ISO8601, я пробовал все, что могу, чтобы изменить это, но im new для .net и MVC, поэтому я просто не могу обернуть голову что делать.

Я не могу разместить ссылку на картину события оказанной как я не имею достаточно респ ....

Pic из данных, поступающих в объект -

JsonObject

БД выстрел правильной DateTime в SQL -

SQL DateTime

Вот как эта установка работает на наш MCV5 проект/FullCalendar

Модель -

public int Id { get; set; } 

    //Auto Populate 
    public string Subject { get; set; } 

    public string Description { get; set; } 

    public DateTime? StartTime { get; set; } 
    public DateTime? EndTime { get; set; } 

    public bool? AllDay { get; set; } 
    public bool? isAMLeave { get; set; } 
    public bool? isPMLeave { get; set; } 

    public string ETADType { get; set; } 
    public string ETADSubType { get; set; } 

    [ForeignKey("AssignedRole")] 
    public int SelectRole { get; set; } 
    public bool? AllRoles { get; set; } 

    public int StaffID { get; set; } 

    public int EventStatus { get; set; } 

    /*Approval Details*/ 
    public int? ApporovedId { get; set; } 
    public DateTime? ApprovedDate { get; set; } 


    public DateTime EventDate { get; set; } 

    /*soft audit*/ 
    public double Duration { get; set; } 
    public string EventAction { get; set; } 

    public virtual AssignedRoles AssignedRole { get; set; } 


} 

JsonResult -

public JsonResult GetDiaryEventsDivOne() 
    { 
     if (User.IsInRole("Global Admin")) 
     { 
      var date = new Date(jsonDate); 

      var _DivisionOneList = from e in db.DiaryEvent 
            join lt in db.EventStatus on e.EventStatus equals lt.Id 
            join t in db.ETAD_EventTypes on e.ETADType equals t.ETADID.ToString() 
            join st in db.ETAD_EventSubType on e.ETADSubType equals st.ETADSubID.ToString() 
            join sid in db.AssignedRoles on e.StaffID equals sid.UserID 
            join tid in db.Teams on sid.TeamId equals tid.TeamID 
            join div in db.Divisions on sid.DivisionId equals div.DivisionID 
            join sd in db.SubDivisions on sid.SubDivisionId equals sd.SubDivisionID 
            join sp in db.JobRoles on sid.JobRoleID equals sp.JobRoleID 
            where div.DivisionID == 1 
            select new 
            { 
             id = e.Id, 
             title = e.Subject, 
             description = e.Description, 
             start = e.StartTime, 
             end = e.EndTime, 
             etad = t.ETADDescription.ToString(), 
             etadsub = st.Description.ToString(), 
             color = t.Colours.HexCode, 
             user = sid.StaffProfiles.Fullname, 
             jobtitle = sp.JobTitle.ToString(), 
             allroles = e.AllRoles, 
             division = div.DivisionName, 
             subdivision = sd.SubDivisionName, 
             allDay = false 

            }; 

      var rows = _DivisionOneList.ToArray(); 
      return Json(rows, JsonRequestBehavior.AllowGet); 

И наконец Heres мой JS

$(document).ready(function() { 
$('#calendar').fullCalendar({ 
    header: { 
     left: 'prev,next today', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
    }, 
    eventSources: [ 
     source1, 
     source2 
    ], 
    timezone: 'Europe/London', 
    defaultView: 'month', 
    editable: false, 
    contentHeight: 700, 
    selectable: true, 
    eventClick: function (event, jsEvent, view) {   
     $("#startTime").html(moment(event.start).format('DD-MM-YYYY HH:mm')); 
     $("#endTime").html(moment(event.end).format('DD-MM-YYYY HH:mm')); 
     $('#modalTitle').html(event.title); 
     $('#user').text(event.user); 
     $('#modalBody').text(event.description); 
     $('#etad').html(event.etad); 
     $('#etadsub').html(event.etadsub);   
     $('#fullCalModal').modal('show'); 
     $("#removeBtn").click(function() { 
      $.ajax({ 
       type: 'POST', 
       url: "/BookingTwo/DeleteEvent", 
       data: { 
        "id": event.id 
       }, 
       success: function() { 
        $('#calendar').fullCalendar('removeEvents', event.id); 
        $('#fullCalModal').modal('hide'); 
       }, 
       statusCode: { 
        202: function (reponose) { 
         $('#calendar').fullCalendar('refetchEvents'); 
         $('#alert').addClass('alert alert-success').removeClass('alert-warning'); 
         $("#alert").removeClass("hidden"); 
         $("P").replaceWith("Success - Event Deleted") 
         $("#alert").fadeTo(5000, 500).slideUp(500, function() { 
          $('#alert').addClass("hidden"); 
         }) 
        }, 
        409: function (reponse) { 
         $('#calendar').fullCalendar('refetchEvents'); 
         $("#alert").removeClass("hidden"); 
         $("P").replaceWith("Event already actioned.") 
         $("#alert").fadeTo(5000, 500).slideUp(500, function() { 
          $('#alert').addClass("hidden"); 
         }) 
        }, 
        400: function (reponse) { 
         $('#calendar').fullCalendar('refetchEvents'); 
         $("#alert").removeClass("hidden"); 
         $("P").replaceWith("Access Denied - Not your leave request.") 
         $("#alert").fadeTo(5000, 500).slideUp(500, function() { 
          $('#alert').addClass("hidden"); 
         }) 
        } 
       } 
      }); 
     }); 
    }, 

ответ

0

Ive исправили проблему, установив

Ti meZone; «Местный»

Я думал, что я уже установить это в PARAMATERS, но я поставил Europe/London

Для любого, имеющего тот же вопрос, пожалуйста, посмотрите на ваши настройки часовых поясов в ваших JS для FullCalendar.

Смежные вопросы