【问题标题】:Recurring Timed Events in FullCalendarFullCalendar 中的重复定时事件
【发布时间】:2014-03-14 05:38:50
【问题描述】:

我正在使用 FullCalendar 和 Date.js 来设置每周议程。我还在使用来自fullCalendar jQuery, repeat every monday? 的答案来处理重复事件——但我正在努力将这些事件转换为特定时间,而不是一整天。

var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();

$('#calendar').fullCalendar({
    defaultView: 'agendaWeek'
});

// adding a every monday and wednesday events:
$('#calendar').fullCalendar( 'addEventSource',        
    function(start, end, callback) {
        // When requested, dynamically generate virtual
        // events for every monday and wednesday.
        var events = [];

        for (loop = start.getTime();
             loop <= end.getTime();
             loop = loop + (24 * 60 * 60 * 1000)) {

            var test_date = new Date(loop);

            if (test_date.is().monday()) {
                events.push({
                    title: 'Meeting',
                    start: test_date
                });
            }
        } // for loop

        // return events generated
        callback( events );
    }
);

我尝试更改“if”以检查时间,但没有成功,我尝试设置 test_date 变量的时间,但没有成功。

感谢您的帮助。

【问题讨论】:

    标签: jquery fullcalendar


    【解决方案1】:

    谢谢,sulaiman,这很有帮助。我还不得不抛弃 date.js - 它不再处于开发阶段,许多功能都被破坏了。这是我达到的完整解决方案。

    var date = new Date();
    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();
    
    $('#calendar').fullCalendar({
        defaultView: 'agendaWeek',
        defaultEventMinutes: 45,
        editable: false
    });
    
    $('#calendar').fullCalendar( 'addEventSource',        
        function(start, end, callback) {
            // When requested, dynamically generate virtual events for every monday and wednesday.
            var events = [];
    
            // checks every 30 minutes, rather than 24 hours
            for (loop = start.getTime(); loop <= end.getTime(); loop = loop + (30 * 60 * 1000)) {
    
                var test_date = new Date(loop);
    
                if (test_date.getDay() === 1 && test_date.getHours() === 11 && test_date.getMinutes() === 30){
                    events.push({
                        title: 'Meeting',
                        start: test_date
                        allDay: false
                    });
                }
            } // for loop
    
            // return events generated
            callback( events );
        }
    );
    

    【讨论】:

      【解决方案2】:

      您必须添加allDay: false

      if (test_date.is().monday()) {
          events.push({
           title: 'Meeting',
           start: test_date,
           allDay: false
         });
      }
      

      【讨论】:

        猜你喜欢
        • 2017-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多