使用PHP DateInterval创建重复事件

所以我花了很多时间研究如何最好地将重复发生的事件添加到我的日历应用程序中.

我想使用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查看

我知道这是一个老问题,但也许有人会受益!

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...