所以我花了很多时间研究如何最好地将重复发生的事件添加到我的日历应用程序中.
我想使用PHP DateInterval函数并制定下面的代码,尝试根据原始事件Start Date,Finish Date和EndDate of Recurrence创建一个定期事件.
//user defined event start and finish dates $eventStart = new DateTime( '2011-01-31 09:00:00' ); $eventFinish = new DateTime( '2011-01-32 17:00:00' ); //user defined event recurring end date $endRecurring = new DateTime( '2011-05-31 23:59:59' ); //define for recurring period function $begin = $eventStart; $end = $endRecurring; //define our interval $interval = DateInterval::createFromDateString('next friday'); $period = new DatePeriod($begin,$interval,$end,DatePeriod::EXCLUDE_START_DATE); //loop through and create new dates for recurring events foreach ( $period as $dt ) $recurringStartDate = $dt->format( "l Y-m-d H:i:s\n" ); $recurringEndDate = ?NOT SURE HOW TO PROCESS THE END DATE IN THIS START DATE FOREACH LOOP?
这应该有希望创建一个新的事件开始日期列表.但我还需要为我的定期事件定义新的结束日期.我该怎么做呢?我是否需要在事件开始日期foreach循环中处理此问题?
我的另一个问题是如何组合多个dateIntervals来处理每周一,周三和周五的重复?目前只有一个dateIntervals像下周五一样工作
谢谢你的帮助!
蒂姆
Thomas Planer为PHP 5.2提供了一个日期/日历递归库.它不是DateInterval,但似乎可以解决问题.请在
https://github.com/tplaner/When查看
我知道这是一个老问题,但也许有人会受益!