У меня проблема с этим вопросом в течение нескольких дней, и что-то, что я, похоже, не пройден, Если я отправляю однодневное мероприятие в любое время во время британского летнего времени, тогда это событие показывает в FullCalendar как двухдневное событие и возвращает дату на один час, а также перемещает день (см. изображения ниже), SQL - как это должно быть и показывает правильное время, но календарь неправильно отображается.Дневной свет дневного света FullCalendar делает неправильный день и время
Я думаю, что проблема заключается в том, что Json выходит как ASP.net datetime, а не ISO8601, я пробовал все, что могу, чтобы изменить это, но im new для .net и MVC, поэтому я просто не могу обернуть голову что делать.
Я не могу разместить ссылку на картину события оказанной как я не имею достаточно респ ....
Pic из данных, поступающих в объект -
БД выстрел правильной DateTime в SQL -
Вот как эта установка работает на наш 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");
})
}
}
});
});
},