switch($this->freq) {
case 'HOURLY':
- $days =
+
+
// happens every day based on freq_hour.
$hours = explode(',', $this->freq_hour);
- foreach($hours as $h) {
-
+ for ($day = date('Y-m-d', strtotime($start));
+ strtotime($day) < strtotime($end);
+ $day = date('Y-m-d', strtotime("$day + 1 DAY")))
+ {
+ foreach($hours as $h) {
+ $hh = strpos($h,":") > 0 ? $h : "$H:00";
+ $ret[] = $day . ' ' . $hh;
+ }
}
+ return $this->applyTimezoneToList($ret);
case 'DAILY':
+ $hours = explode(',', $this->freq_hour);
+ if (!$hours) {
+ $hours = array(date('H:i', strtotime($this->dtstart)));
+ }
+
+ $days = explode(','. $this->freq_day);
+
+ for ($day = date('Y-m-d', strtotime($start));
+ strtotime($day) < strtotime($end);
+ $day = date('Y-m-d', strtotime("$day + 1 DAY")))
+ {
+ // skip days not accounted for..
+ if (!in_array(date('N', strtotime($day)), $days)) {
+ continue;
+ }
+
+ foreach($hours as $h) {
+ $hh = strpos($h,":") > 0 ? $h : "$H:00";
+ $ret[] = $day . ' ' . $hh;
+ }
+ }
+
+ return $this->applyTimezoneToList($ret);
case 'MONTHLY': // ignored..
break;
}
+
+ }
+ function applyTimezoneToList($ar)
+ {
+ $ret = array();
+ $tz = explode($this->tz, ":");
+ if ($tz < 0) {
+
+ }
+ $append = ($tz[0] < 0) ? " - " : " + ";
+ $append .= abs($tz[0]) . " HOURS";
+ if (!empty($tz[1])) {
+ $append .= $tz[1] . " MINUTES";
+ }
+ foreach($ar as $a) {
+ $ret[] = date('Y-m-d H:i', strtotime($a . $append));
+
+ }
+ return $ret;
+
}
-
}