我们在完整日历 http://fullcalendar.io/方面遇到了问题。如果我们点击下一个,5 月和 6 月都显示第 4 个月。单击标题中的下一个或上一个按钮。
我们错过了什么吗?
代码行:alert('viewRender view month: ' + view.start._d.getMonth());
小提琴链接 https://jsfiddle.net/sudiptabanerjee/z7La379f/2/
.JS:
$(document).ready(function () {
$('#calendar').fullCalendar({
// defaultDate: '2016-06-12',
editable: true,
eventLimit: true, // allow "more" link when too many events
viewRender: function (view, element) {
alert('viewRender view month: ' + view.start._d.getMonth());
},
events: [
{
title: 'All Day Event',
start: '2016-06-01'
},
{
title: 'Long Event',
start: '2016-06-07',
end: '2016-06-10'
},
{
id: 999,
title: 'Repeating Event',
start: '2016-06-09T16:00:00'
},
{
id: 999,
title: 'Repeating Event',
start: '2016-06-16T16:00:00'
},
{
title: 'Conference',
start: '2016-06-11',
end: '2016-06-13'
},
{
title: 'Meeting',
start: '2016-06-12T10:30:00',
end: '2016-06-12T12:30:00'
},
{
title: 'Lunch',
start: '2016-06-12T12:00:00'
},
{
title: 'Meeting',
start: '2016-06-12T14:30:00'
},
{
title: 'Happy Hour',
start: '2016-06-12T17:30:00'
},
{
title: 'Dinner',
start: '2016-06-12T20:00:00'
},
{
title: 'Birthday Party',
start: '2016-06-13T07:00:00'
},
{
title: 'Click for Google',
url: 'http://google.com/',
start: '2016-06-28'
}
]
});
});
.HTML:
<div id='calendar'></div>
.CSS:
body {
margin: 40px 10px;
padding: 0;
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
font-size: 14px;
background-color:#fff;
}
#calendar {
max-width: 600px;
margin: 0 auto;
}
提前谢谢。
在 JS 中,月份从 0 开始,
0 - Jan
1 - Feb
2 - Mar
3 - Apr
4 - May
5 - June
在月视图中导航到 5 月时,该月的第一天为 1(即 5 月 1 日)6月的第一天是29(即5月29日),两者都是5月
五月的数字是 4
它显示正确的月份,
编辑https://jsfiddle.net/z7La379f/3/
如果您希望获取当前视图的月份,则可以执行此操作
viewRender: function (view, element) {
// alert('viewRender element: '+element.start._d.getMonth());
// alert('viewRender view month: ' + view.start._d.getMonth());
var dt=moment(view.start).add(10,'days');
var mnth =moment(dt).month();
alert(mnth);
},
FullCalendar的view
文档说start
是:
这一刻是第一个可见的一天。
在月视图中,此值通常位于每月的第一天之前,因为大多数月份不是从一周的第一天开始的。
(我的强调。
当你去六月时,看看左上角的那一天,观察它在哪个月。
<小时 />旁注:不要使用库的未记录的内部结构。而不是view.start._d.getMonth()
使用view.start.month()
或view.start.toDate().getMonth()
.