예제 #1
0
 function get_repeat($event, $interval, $count, $repeat_day, $repeat_week = '')
 {
     $repeat = ICalEvents::get_simple_repeat($event, $interval, $count);
     $date = getdate($event['StartTime']);
     if (!empty($repeat_week) && is_numeric($repeat_week)) {
         if ($repeat_week > 0) {
             $rd = getdate($repeat['StartTime']);
             $startDiff = date('w', mktime(0, 0, 0, $rd['mon'], 1, $rd['year'])) - $date['wday'];
             //$repeat['StartTime'] = mktime($rd['hours'],$rd['minutes'],$rd['seconds'],$rd['mon'],$rd['mday'],$rd['year']);
             if ($startDiff == 0) {
                 $woffset = 0;
             } else {
                 $woffset = 7 - $startDiff;
             }
             $daysIntoMonth = $repeat_week * (7 + $woffset);
             //if(strstr($event['Description'],'Rockin\'')) echo 'here!';
             //$offset = (($repeat_week-1) * (7+$woffset) * 24 * 3600);
             $tempStart = $repeat['StartTime'];
             $repeat['StartTime'] = mktime($rd['hours'], $rd['minutes'], $rd['seconds'], $rd['mon'], $daysIntoMonth, $rd['year']);
             $offset = $repeat['StartTime'] - $tempStart;
         } else {
         }
         $repeat['StartTime'] += $offset;
     } else {
         $wday = $date['wday'];
         $offset = ($repeat_day - $wday) * 86400;
         $repeat['StartTime'] += $offset;
     }
     if (isset($repeat['EndTime'])) {
         $repeat['EndTime'] += $offset;
     }
     return $repeat;
 }