function isActive($start, $end) { $res = FALSE; if (!($start && $end)) { return TRUE; } if (!CaldavRessource::isDateTime($start) || !CaldavRessource::isDateTime($end)) { throw new Exception("[{$start},{$end}] Invalid CalDAV DateTime format"); } $event = $this->getBaseComponent(); if ($start && !$end) { if (CaldavRessource::datecmp($start, $event->GetPValue('DTSTART')) < 0) { $res = TRUE; } } else { if (CaldavRessource::datecmp($start, $event->GetPValue('DTSTART')) < 0 && CaldavRessource::datecmp($end, $event->GetPValue('DTEND')) > 0) { $res = TRUE; } } return $res; }
private function limitRange($dates) { $res = array(); if (!$this->range_start && !$this->range_end) { $res = $dates; } else { if ($this->range_start && !$this->range_end) { $start = CaldavRessource::timestamp2ICal($this->range_start); foreach ($dates as $date) { if (CaldavRessource::datecmp($start, $date) < 0) { array_push($res, $date); } } } else { $start = CaldavRessource::timestamp2ICal($this->range_start); $end = CaldavRessource::timestamp2ICal($this->range_end); foreach ($dates as $date) { if (CaldavRessource::datecmp($start, $date) < 0 && CaldavRessource::datecmp($end, $date) > 0) { array_push($res, $date); } } } } return $res; }