全日历 5 月和 6 月均显示值 4



我们在完整日历 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().

相关内容

  • 没有找到相关文章

最新更新