我想在完整日历上显示每月活动

如何解决我想在完整日历上显示每月活动

我有一个小问题,我被卡住了。我正在使用完整日历 v4.4.0。在我的网络应用程序中,客户可以创建一个频率为(一次、每周和每月)的事件。我已经成功地在完整日历上显示了每周发生一次的事件。但我一直在展示每月的活动。

还有一件事,事件数据来自数据库,所以我不想推送每月或每周在数据库中发生的相同事件。我只想要一个实例。为了每周的目的,我成功了。

让我和你分享我的代码

  $model = Event::find()->all(); // getting events from database
    foreach ($model as $mod)//looping 
    {
        $day=array(); // for weekly purpose making day array for repeatabel
        if ($mod->event_frequency==2) // checking if the event is weekly
        {
            $start=date('N',strtotime($mod->start_time)); // getting start day
            $end=date('N',strtotime($mod->end_time)); // getting end day
            if($start==$end)
            {
                $day[]=$start;
            }
            else
            {
                $day[]=$start;
                $day[]=$end;
            }
            $data[]=[
                'id' =>$mod->id,'title'=>$mod->event_name,'start'           => $mod->start_time,'end'             => $mod->end_time,'backgroundColor' => $mod->event_tag_color,'textColor'       => '#FFF','daysOfWeek' => $day // for repeatable events showing
                
            ];
           
        }
        else if($mod->event_frequency==3) // for monthly
        {
            $start=date('N',strtotime($mod->start_time));
            $end=date('N',strtotime($mod->end_time));
            if($start==$end)
            {
                $day[]=$start;
            }
            else
            {
                $day[]=$start;
                $day[]=$end;
            }
            $data[]=[
                'id' =>$mod->id,// stuck here for days 
                'rrule'=> [
                        'freq'=> 'MONTHLY','interval'=> '5','dtstart'=> $start,'until' => '2022-12-31',],];
        }
        else
        {
        
            $data[]=[
                'id' =>$mod->id,];
        }

请帮忙

感谢捆绑

编辑:

我添加了 rrule.min.js 并尝试通过 json 发送 rrule,但它没有显示在日历上。也添加了其余的参数。

完整的 json 正在填充事件

[
{
    "id": 4,"title": "Testing Event 1","start": "2021-02-24 09:00:00","end": "2021-02-24 18:00:00","backgroundColor": "#F9072C","textColor": "#FFF"
},{
    "id": 5,"title": "Testing Event 2","start": "2021-02-26 09:00:00","end": "2021-02-26 18:00:00","backgroundColor": "#6453E9",{
    "id": 6,"title": "Testing Event 3","start": "2021-02-25 09:00:00","end": "2021-02-25 18:00:00","backgroundColor": "#53E984",{
    "id": 7,"title": "Testing Event 4","start": "2021-02-27 10:00:00","end": "2021-02-27 21:00:00","backgroundColor": "#E9CB53","textColor": "#FFF","rrule": {
        "freq": "MONTHLY","interval": "1","dtstart": "2021-02-27 10:00:00","until": "2022-12-31"
    }
},{
    "id": 10,"title": "Testing Event","start": "2021-03-12 09:00:00","end": "2021-03-12 18:00:00","backgroundColor": "#FF000F",{
    "id": 11,"title": "testing one","start": "2021-03-09 04:45:00","end": "2021-03-10 04:45:00","daysOfWeek": [
        "2","3"
    ]
},{
    "id": 12,"title": "Testing with Monthly","start": "2021-03-23 09:00:00","end": "2021-03-23 17:00:00","backgroundColor": "#025B0E","dtstart": "2021-03-23 09:00:00","until": "2022-12-31"
    }
}

]

calendar.js 如下

document.addEventListener('DOMContentLoaded',function() {

var url ='./';

$('body').on('click','.datetimepicker',function() {
    $(this).not('.hasDateTimePicker').datetimepicker({
        controlType: 'select',changeMonth: true,changeYear: true,dateFormat: "dd-mm-yy",timeFormat: 'HH:mm:ss',yearRange: "1900:+10",showOn:'focus',firstDay: 1
    }).focus();
});

$(".colorpicker").colorpicker();

var calendarEl = document.getElementById('calendar-event');

var calendar = new FullCalendar.Calendar(calendarEl,{
    plugins: ['interaction','dayGrid','timeGrid','list','rrule'],header: {
        left: 'prev,next today',center: 'title',right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth'
    },navLinks: true,// can click day/week names to navigate views
    businessHours: true,// display business hours
    editable: true,//uncomment to have a default date
    //defaultDate: '2020-04-07',events: url+'calender/load',// this is where the events are populating
    
    eventDrop: function(arg) {
        var start = arg.event.start.toDateString()+' '+arg.event.start.getHours()+':'+arg.event.start.getMinutes()+':'+arg.event.start.getSeconds();
        if (arg.event.end == null) {
            end = start;
        } else {
            var end = arg.event.end.toDateString()+' '+arg.event.end.getHours()+':'+arg.event.end.getMinutes()+':'+arg.event.end.getSeconds();
        }

        $.ajax({
          url:url+"calender/update",type:"POST",data:{id:arg.event.id,start:start,end:end},});
    },eventResize: function(arg) {
        var start = arg.event.start.toDateString()+' '+arg.event.start.getHours()+':'+arg.event.start.getMinutes()+':'+arg.event.start.getSeconds();
        var end = arg.event.end.toDateString()+' '+arg.event.end.getHours()+':'+arg.event.end.getMinutes()+':'+arg.event.end.getSeconds();

        $.ajax({
          url:url+"calender/update",eventClick: function(arg) {
        var id = arg.event.id;
        
        $('#editEventId').val(id);
        $('#deleteEvent').attr('data-id',id); 
        
        $.ajax({
          url:url+"calender/get-event",dataType: 'json',data:{id:id},success: function(data) {
            //   debugger;
              
                $('#name').val(data.title);
                $('#start').val(data.start);
                $('#end').val(data.end);
                $('#color').val(data.color);
                $('#comments').val(data.comments);
                $('#venue').val(data.venue);
                $('#frequency').val(data.frequency);
                $('#event_id').val(data.id);
                // $('#editTextColor').val(data.textColor);
                // $('#editeventmodal').modal();
            }
        });

        $('body').on('click','#deleteEvent',function() {
            if(confirm("Are you sure you want to remove it?")) {
                $.ajax({
                    url:url+"api/delete.php",data:{id:arg.event.id},}); 

                //close model
                $('#editeventmodal').modal('hide');

                //refresh calendar
                calendar.refetchEvents();         
            }
        });
        
        calendar.refetchEvents();
    }
});

calendar.render();



$(".ajax_form").on("submit",function(evt) {
    evt.preventDefault();
    var $form = $(this);
    $.ajax({
        type: $form.prop('method'),url: $form.prop('action'),data: $form.serialize(),dataType: "json",traditional: true,success: function (response) {
            //alert(response.status);
           
            if (response.status==="ok"){
                
                calendar.refetchEvents();
                
                $(".ajax_form").trigger("reset");
                

        }
        else 
        {
             
        }
        },error: function (response) {
            debugger;
            alert(response.d);
        }

});

});

$(".edit-event-calender").on("click",function(evt) {
    $data=$('form').serialize();
    $url=$(this).data('url');
    
    
        $.ajax({
            type: "POST",url: $url,data: $data,success: function (response) {
                //alert(response.status);
            
                if (response.status==="ok"){
                    
                    calendar.refetchEvents();
                    
                    $(".ajax_form").trigger("reset");
                    

            }
            else 
            {
                
            }
            },error: function (response) {
                debugger;
                alert(response.d);
            }

    });
});

$(".delete-event-calender").on("click",error: function (response) {
                debugger;
                alert(response.d);
            }

    });
});

});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res