fullCalendar gotoDate 和 getDate 可能存在的错误



我不希望人们试图在我的完整日历中创建过去的事件。因此,一旦他们选择了日期/时间,我就会进行如下快速检查:

select: function(start, end, allDay) { 
        // need to check the day first. If the selected day/time < today, throw an alert
        // otherwise allow the booking of the conference.
            var now = calendar.fullCalendar('getDate');
            if (start < now )
            {
                alert('You cannot book a conference in the past!' +start +now);
                calendar.fullCalendar( 'unselect' );
            }
            else
            {
                             // other stuff here
                            }

这很好用。如果我单击的时间或日期早于现在,我会收到一条警报,指出我无法执行此操作。完美吧?

我正在使用jQuery DatePicker,我可以在一个小日历视图中单击一个日期,然后在我的fullCalendar中转到该日期,该日历默认为仅议程视图。它工作得很好:

$( "#datepicker" ).datepicker({
        changeMonth: true,
        changeYear: true,
        minDate: 0, 
        maxDate: "+1Y",
        onSelect: function(dateText) {
            // fullCalendar only accepts a date in a specific format so parse the date
            // from the jQuery DatePicker widget and use that result to move the calendar
            // to the correct day.
            var pd = $.fullCalendar.parseDate(dateText);
            $('#calendar').fullCalendar('gotoDate', pd);
        }
    });

这个例程让我在议程视图中处于正确的一周。然后,我可以选择要在该周中使用的日期。但是,如果我尝试在使用gotoDate方法前往的日期之前的日期创建事件,我也会收到有关过去创建事件的错误。似乎"gotoDate"方法实际上正在设置日期。我可以在该日期或更晚创建事件,但不能在该日期之前创建事件。

如果我只使用fullCalendar的导航方法,它可以完美地工作。但是由于fullCalendar没有"跳转到日期"选项或小部件,因此我使用DatePicker自己创建,我认为这是合乎逻辑的事情。

那么,这是一个错误吗?还是我做错了什么?

是的,感谢京香和加内什克的评论,回答了我自己的问题。 碰巧的是,fullCalendar('getDate') 函数返回当前选定的日期,而不是"今天"。这只是我对文档的误解。然后,解决方案是使用一个新的 Date 对象,在这种情况下它可以完美地工作:

select: function(start, end, allDay) { 
    // need to check the day first. If the selected day/time < today, throw an alert
    // otherwise allow the booking of the conference.
        var now = new Date();
        if (start < now )
        {
            alert('You cannot book a conference in the past!');
            calendar.fullCalendar( 'unselect' );
        }
        else
        {
                         // other stuff here
                        }

希望这对其他人也有帮助。

相关内容

  • 没有找到相关文章

最新更新