整个月重复不一致
问题描述:
通过查看我在下面提供的代码,有没有人知道为什么重复在每个月都不一致?我的意思是,在第一个月显示直到结束,重复工作正常,然后在本月底之前,重复显示不正确。下面代码的输出可以看到here on jsbin只需点击预览即可。整个月重复不一致
(function() {
function MyEvents(start,end, callback) {
var events = [];
// Setup the meeting on the this weeks "monday"
var meeting = new Date(start.getFullYear(),
start.getMonth(),
start.getDate(),
4, 30, 00);
var endmeeting = new Date(2010, 07, 06, 8, 00, 00);
meeting.setDate((meeting.getDate() - meeting.getDay()) + 1);
var newEnd = new Date(end);
var maxEnd = new Date((newEnd.getFullYear() + 1), newEnd.getMonth(), newEnd.getDate());
//==========Calculate Repeat===========//
var oneDay = 1000 * 60 * 60 * 24;
var date1 = meeting.getTime();
var date2 = endmeeting.getTime();
var difference = Math.abs(date1 - date2);
var days = Math.abs(difference/oneDay);
while (meeting <= maxEnd) {
var endDate = new Date();
endDate.setDate(meeting.getDate() + days);
events.push({
id: 2,
title: "Monday Meeting",
start: new Date(meeting.valueOf()),
end: endDate,
allDay: false
});
// increase by one week
meeting.setDate(meeting.getDate() + 7);
}
callback(events);
}
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
events: MyEvents
});
});
编辑 - 我看到什么是错的,为什么这一点。如果我把“alert(endDate)”;“之前“meeting.setDate(meeting.getDate()+ 7);”,我确实看到它给了我正确的“结束”日期。这里的问题在于,一旦到了九月和即将到来的月份,该月将始终保持在“八月”,但日期是正确的日期。例如,一旦到达“9月10日”,这将再次为“8月10日”,“9月17日”将为“8月17日”。日期变化,但不是一个月。任何想法的人?
你应该解释你所看到的。 (又名第一个月正常工作)以及桥梁月。但在此之后,一切都变成废话。 – Nix 2010-08-05 13:14:02
至少您可以发布您的解决方案,然后批准您的答案 – Gutzofter 2010-08-07 02:29:06