Asp.net mvc 5 FullCalendar Day Light Savings渲染错误的日期和时间

Asp.net mvc 5 FullCalendar Day Light Savings渲染错误的日期和时间,asp.net-mvc-5,fullcalendar,Asp.net Mvc 5,Fullcalendar,我有这个问题已经好几天了,这似乎是我无法克服的,如果我在英国夏季的任何时候发布一个为期一天的活动,那么在FullCalendar中呈现的活动将显示为为期两天的活动,并将日期放回一个小时,同时也移动了一天(请参见下面的图片),SQL应该是这样的,并且显示正确的日期时间,但是日历呈现不正确 我认为问题在于Json是以ASP.net日期时间而不是ISO8601的形式出现的,我已经尽了我所能来改变这一点,但我对.net和MVC是新手,所以我无法思考该怎么做 我无法发布事件图片的链接,因为我没有足够的代表

我有这个问题已经好几天了,这似乎是我无法克服的,如果我在英国夏季的任何时候发布一个为期一天的活动,那么在FullCalendar中呈现的活动将显示为为期两天的活动,并将日期放回一个小时,同时也移动了一天(请参见下面的图片),SQL应该是这样的,并且显示正确的日期时间,但是日历呈现不正确

我认为问题在于Json是以ASP.net日期时间而不是ISO8601的形式出现的,我已经尽了我所能来改变这一点,但我对.net和MVC是新手,所以我无法思考该怎么做

我无法发布事件图片的链接,因为我没有足够的代表

对象中显示的数据的图片-

SQL中正确日期时间的DB快照-

下面是我们的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);
最后是我的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");
                        })
                    }
                }
            });
        });
    },

我通过设置

时区本地的

我以为我已经在paramaters中设置了这个,但我已经在欧洲/伦敦设置了

对于有相同问题的人,请查看JS For FullCalendar中的时区设置