FullCalendar eventResize() returns 日期 + 1?
FullCalendar eventResize() returns date + 1?
这本质上是同一个问题 as here,但那里没有答案。我更具体一点:它返回 endDate + 1 (看起来)。当使用 FullCalendar.eventResize 函数并显示 event.end.format() 结果时,它报告的结束日期比日历上显示的日期晚一天,至少我们人类会阅读它。
这是针对全天活动的。该事件是可编辑的,显示在月视图中。如果你有一个跨越一天的事件 - 比如 2015/4/08 - 它会填满整个广场。如果您随后拖动该事件的终点以在视觉上覆盖两天而不是一天,那么应该是 2015/4/08-2015/4/09(含),event.end.format() 函数 returns值“2015-04-10”作为新的结束日期。
现在它可能告诉我它将于 2015 年 4 月 10 日的 00:00:00 结束,但这并不是我真正想要的。我希望它在 2015/4/09 的 23:59:59 结束;这就是视觉指示所显示的内容。如果我向数据库报告新的结束日期是 2015 年 4 月 10 日,从用户的角度来看,那将是错误的日期。此外,通过从日期中减去一个,这在数据库本身中相对容易处理,但我只是想知道是否有官方原因,如果它是一个错误,我的代码是否错误等等。
I created a JSFiddle 来演示这一切。只需拖动事件的结束点,弹出窗口就会显示新的结束日期。这是 JSFiddle 中使用的代码:
$(document).ready(function () {
var httpXHR, fmpurl;
currDate = "2015/7/01";
$("#calendar").fullCalendar({
defaultDate: currDate,
editable: true,
allDayDefault: true,
eventStartEditable: true,
eventDurationEditable: true,
dayClick: function () {
alert("a day has been clicked!");
},
eventDrop: function (event, delta, revertFunc) {
if (!confirm(event.title + " was dropped on " + event.start.format() + ".\nAre you sure about this change?")) {
revertFunc();
}
},
eventResize: function (event, delta, revertFunc) {
if (!confirm(event.title + " end is now " + (event.end.format()) + ".\n\nIs this okay?")) {
revertFunc();
} else {
alert("Date was changed to: " + event.end.format());
}
},
events: [{
id: 1,
title: "Project 1",
start: "7/1/2015",
end: "7/3/2015"
}, {
id: 2,
title: "Project 2",
start: "7/3/2015",
end: "7/7/2015"
}, {
id: 3,
title: "Project 3",
start: "7/7/2015",
end: "7/7/2015"
}, {
id: 4,
title: "Project 4",
start: "7/7/2015",
end: "7/11/2015"
}, {
id: 5,
title: "Project 5",
start: "7/14/2015",
end: "7/16/2015"
}, {
id: 6,
title: "Project 6",
start: "6/18/2015",
end: "7/3/2015"
}, {
id: 7,
title: "Project 7",
start: "7/30/2015",
end: "8/15/2015"
}, {
id: 15,
title: "Project 15",
start: "6/08/2015",
end: "6/19/2015"
}]
});
});
--贾斯汀
这是一些有点不直观的行为。
忘记拖动和调整大小,它们与它无关。看看Project 1
就知道了。日历上有两天,但指定日期是
{start: "7/1/2015",
end: "7/3/2015"}
文档在 end
下的 Event Object 部分提到了这一点:
The exclusive date/time an event ends. Optional.
A Moment-ish input, like an ISO8601 string. Throughout the API this
will become a real Moment object.
It is the moment immediately after the event has ended. For example,
if the last full day of an event is Thursday, the exclusive end of the
event will be 00:00:00 on Friday!
由于结束日期没有时间,时间为“00:00:00”。而这个时间是在事件之后。
这本质上是同一个问题 as here,但那里没有答案。我更具体一点:它返回 endDate + 1 (看起来)。当使用 FullCalendar.eventResize 函数并显示 event.end.format() 结果时,它报告的结束日期比日历上显示的日期晚一天,至少我们人类会阅读它。
这是针对全天活动的。该事件是可编辑的,显示在月视图中。如果你有一个跨越一天的事件 - 比如 2015/4/08 - 它会填满整个广场。如果您随后拖动该事件的终点以在视觉上覆盖两天而不是一天,那么应该是 2015/4/08-2015/4/09(含),event.end.format() 函数 returns值“2015-04-10”作为新的结束日期。
现在它可能告诉我它将于 2015 年 4 月 10 日的 00:00:00 结束,但这并不是我真正想要的。我希望它在 2015/4/09 的 23:59:59 结束;这就是视觉指示所显示的内容。如果我向数据库报告新的结束日期是 2015 年 4 月 10 日,从用户的角度来看,那将是错误的日期。此外,通过从日期中减去一个,这在数据库本身中相对容易处理,但我只是想知道是否有官方原因,如果它是一个错误,我的代码是否错误等等。
I created a JSFiddle 来演示这一切。只需拖动事件的结束点,弹出窗口就会显示新的结束日期。这是 JSFiddle 中使用的代码:
$(document).ready(function () {
var httpXHR, fmpurl;
currDate = "2015/7/01";
$("#calendar").fullCalendar({
defaultDate: currDate,
editable: true,
allDayDefault: true,
eventStartEditable: true,
eventDurationEditable: true,
dayClick: function () {
alert("a day has been clicked!");
},
eventDrop: function (event, delta, revertFunc) {
if (!confirm(event.title + " was dropped on " + event.start.format() + ".\nAre you sure about this change?")) {
revertFunc();
}
},
eventResize: function (event, delta, revertFunc) {
if (!confirm(event.title + " end is now " + (event.end.format()) + ".\n\nIs this okay?")) {
revertFunc();
} else {
alert("Date was changed to: " + event.end.format());
}
},
events: [{
id: 1,
title: "Project 1",
start: "7/1/2015",
end: "7/3/2015"
}, {
id: 2,
title: "Project 2",
start: "7/3/2015",
end: "7/7/2015"
}, {
id: 3,
title: "Project 3",
start: "7/7/2015",
end: "7/7/2015"
}, {
id: 4,
title: "Project 4",
start: "7/7/2015",
end: "7/11/2015"
}, {
id: 5,
title: "Project 5",
start: "7/14/2015",
end: "7/16/2015"
}, {
id: 6,
title: "Project 6",
start: "6/18/2015",
end: "7/3/2015"
}, {
id: 7,
title: "Project 7",
start: "7/30/2015",
end: "8/15/2015"
}, {
id: 15,
title: "Project 15",
start: "6/08/2015",
end: "6/19/2015"
}]
});
});
--贾斯汀
这是一些有点不直观的行为。
忘记拖动和调整大小,它们与它无关。看看Project 1
就知道了。日历上有两天,但指定日期是
{start: "7/1/2015",
end: "7/3/2015"}
文档在 end
下的 Event Object 部分提到了这一点:
The exclusive date/time an event ends. Optional.
A Moment-ish input, like an ISO8601 string. Throughout the API this will become a real Moment object.
It is the moment immediately after the event has ended. For example, if the last full day of an event is Thursday, the exclusive end of the event will be 00:00:00 on Friday!
由于结束日期没有时间,时间为“00:00:00”。而这个时间是在事件之后。