Php 同步日历任务 .ics 文件

.ics文件 实例

BEGIN:VCALENDAR
PRODID:-//Events Calendar//iCal4j 1.0//EN
CALSCALE:GREGORIAN
VERSION:2.0
X-WR-TIMEZONE:Asia/Shanghai
BEGIN:VEVENT
DTSTAMP:20181206T030305Z
DTSTART;TZID=Asia/Shanghai:20181123T150000
DTEND;TZID=Asia/Shanghai:20181123T150000
SUMMARY:1.01 办理签约
DESCRIPTION:来自项目:cs\n与客户磋商委托意愿,处理法律服务委托合同签订事宜,办理律师费收费的相关事宜
TZID:Asia/Shanghai
UID:20181219T080311Z-task@prod-springcloud-node12-6_194
BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME:20181123T060000Z
SUMMARY:重要任务提醒
ACTION:DISPLAY
DESCRIPTION:1.01 办理签约
END:VALARM
BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME:20181123T070000Z
SUMMARY:重要任务提醒
ACTION:DISPLAY
DESCRIPTION:1.01 办理签约
END:VALARM
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181206T030305Z
DTSTART;TZID=Asia/Shanghai:20181126T230000
DTEND;TZID=Asia/Shanghai:20181127T000000
SUMMARY:任务一
DESCRIPTION:来自项目:测试项目(高梁琪)\n详情test
TZID:Asia/Shanghai
UID:20181219T080312Z-task@prod-springcloud-node12-6_194
BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME:20181126T140000Z
SUMMARY:重要任务提醒
ACTION:DISPLAY
DESCRIPTION:任务一
END:VALARM
BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME:20181126T150000Z
SUMMARY:重要任务提醒
ACTION:DISPLAY
DESCRIPTION:任务一
END:VALARM
END:VEVENT
END:VCALENDAR
 

测试实例(tp5)

public function Calender_ics(){
        $params = $this->get_post_request();
        $tasklist = OwntaskModel::calendarTask($params);
        echo "BEGIN:VCALENDAR\n";
        echo "PRODID:-//Events Calendar//iCal4j 1.0//EN\n";
        echo "CALSCALE:GREGORIAN\n";
        echo "VERSION:2.0\n";
        echo "X-WR-TIMEZONE:Asia/Shanghai\n";

        $str = '';

        //当前时间戳
        $time_ymd = date('Ymd',time());
        $time_his = date('His',time());
        foreach($tasklist as $k=>$v){
            //开始时间
            $start_time_ymd = date('Ymd',$v['start_time']);
            $start_time_his = date('His',$v['start_time']);
            //结束时间
            $end_time_ymd = date('Ymd',$v['end_time']);
            $end_time_his = date('His',$v['end_time']);

            if($v['project_id'] == 0){
                $project = '个人任务';
            }else{
                $project = '工作';
            }

            $str .=  "BEGIN:VEVENT
DTSTAMP:{$time_ymd}T{$time_his}Z
DTSTART;TZID=Asia/Shanghai:{$start_time_ymd}T{$start_time_his}
DTEND;TZID=Asia/Shanghai:{$end_time_ymd}T{$end_time_his}
SUMMARY:{$v['title']}
DESCRIPTION:来自项目:{$project}
TZID:Asia/Shanghai
UID:20181128T{$time_his}Z-{$k}task@prod-springcloud-node12-6_194
BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME:{$end_time_ymd}T{$end_time_his}Z
SUMMARY:重要任务提醒
ACTION:DISPLAY
DESCRIPTION:{$v['title']}
END:VALARM
END:VEVENT\n";
        }

        $str .= 'END:VCALENDAR';
        header("Content-Type: text/Calendar");
        header("Content-Disposition: inline; filename=calender.ics");

        echo $str;
        exit;

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值