【问题标题】:FullCalendar passing starting dateFullCalendar 通过开始日期
【发布时间】:2012-04-13 06:46:24
【问题描述】:

谁能帮助我了解如何将开始日期传递到日历中。我创建了一个 Delivery Scheduler 日历,并在通过数据库提供的日历下的表格中显示了交付详细信息。这需要我在用户选择日历日来加载表格信息时刷新页面。我可以弄清楚如何在传递到页面的开始日期开始日历。

看起来这很容易,但我做错了。

$('#calendar').fullCalendar(Options); $('#calendar').fullCalendar('gotoDate', '2012-10-21');

【问题讨论】:

    标签: fullcalendar


    【解决方案1】:

    示例基于文档http://arshaw.com/fullcalendar/docs/current_date/gotoDate/

    请记住,月份是从 0 开始的,因此 10 表示 11 月。

    $(document).ready(function () {
    
        var calendar = $('#calendar').fullCalendar({
            events:[
                { title:'All Day Event', start:new Date(2012, 10, 20)},
                { title:'Long Event', start:new Date(2012, 10, 21), end:new Date(2012, 10, 22)}
            ]
        });
    
        $('#calendar').fullCalendar('gotoDate', 2012, 10, 21);
    
    });
    

    【讨论】:

    • 我知道,这是我正在处理的代码中的 sn-p ;] 然后接受答案。
    • 接受是为了通知其他人问题已经解决,不仅是为了“满足”,无论如何 - thx :]
    • 然后考虑 +1 来解决我的问题。
    • @biesior 我在从远程 URL 获取 JSON 格式的数据并设置日期时遇到问题。在我的 JSON 日期中是 2016-09-27 11:47:49 形式,它永远不会适用于所有视图(日、周、月),但在 JS 中,如果我这样做 new Date(2016, 9, 27, 12, 0),那么它适用于所有视图。为什么?我可以在哪里根据 FullCalendar 要求格式化日期?
    • @Volatil3 - 抱歉,我现在不能帮助你,因为我需要在回答之前检查问题是什么,而且我的 AFK 时间更长,如果你最好在 fullcalendar 标签中提出一个新问题还没有。
    【解决方案2】:

    感谢 Biesior 的有用回答。我能够使用您建议的代码来获得我正在寻找的行为。

    在使用上述方法时,我注意到 Firebug 的控制台显示两个 AJAX 数据请求同时执行,一个用于与当前日期关联的视图,另一个用于与指定 gotoDate 关联的视图。

    从用户的角度来看,似乎没有任何额外的延迟,并且日历从一开始就显示请求的视图。但是,“加载”回调将被多次调用,这在某些情况下可能会导致奇怪的行为。当前日期的多余 AJAX 请求也可能会产生其他不希望的结果。

    我能够避免不必要的 AJAX 请求,方法是在没有事件源的情况下初始化日历,然后移动到上面 Biesior 所示的所需日期,然后添加事件源。顺序如下所示。 我删除了一些不相关的 FullCalendar 选项和回调以保持简洁。还有一些额外的 AJAX 参数,还有一些 PHP,但是需要注意的重要一点是指定事件源的时间。

    原始代码导致两个同时的 AJAX 请求:

    $('#calendar').fullCalendar({
      events: {
        url:'/Services/GetEvents.php',
        type: 'POST',
        data: {
            lat: <?=$venLatitude?>,
            lon: <?=$venLongitude?>,
            userID: <?=$userID?>,
            distance: <?=$distance?>
        }
      }
    })
    $('#calendar').fullCalendar('gotoDate', <?=(int)substr($startDate,0,4)?>, <?=((int)substr($startDate,5,2))-1?>);
    

    此调整仅产生所需的 AJAX 请求:

            $('#calendar').fullCalendar();
            $('#calendar').fullCalendar('gotoDate', <?=(int)substr($startDate,0,4)?>, <?=((int)substr($startDate,5,2))-1?>);
            $('#calendar').fullCalendar('addEventSource', {
                    url:'/Services/GetEvents.php',
                    type: 'POST',
                    data: {
                        lat: <?=$venLatitude?>,
                        lon: <?=$venLongitude?>,
                        userID: <?=$userID?>,
                        distance: <?=$distance?>
                    }
                });
    

    【讨论】:

    • 你在这里问一个新问题吗?
    • 在我看来,他在指出 fullcalendar 中的一个错误并向人们展示如何解决它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多