public function testParsingOfEndTimeWithTzidSetAndUntilSetUnderRRULE() { $ical = new SG_iCal(); $timezone['tzid'] = 'America/New_York'; $timezone['daylight'] = array('tzoffsetfrom' => '-0500', 'tzoffsetto' => '-0400', 'tzname' => 'EDT', 'dtstart' => '19700308T020000', 'rrule' => 'FREQ=YEARLY;BYMONTH=3;BYDAY=2SU'); $timezone['standard'] = array('tzoffsetfrom' => '-0400', 'tzoffsetto' => '-0500', 'tzname' => 'EST', 'dtstart' => '19701101T020000', 'rrule' => 'FREQ=YEARLY;BYMONTH=11;BYDAY=1SU'); $timezone2['tzid'] = 'Europe/Copenhagen'; $timezone2['daylight'] = array('tzoffsetfrom' => '+0100', 'tzoffsetto' => '+0200', 'tzname' => 'CEST', 'dtstart' => '19700329T020000', 'rrule' => 'FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU'); $timezone2['standard'] = array('tzoffsetfrom' => '+0200', 'tzoffsetto' => '+0100', 'tzname' => 'CET', 'dtstart' => '19701025T030000', 'rrule' => 'FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU'); $ical->addTimeZone(new SG_iCal_VTimeZone($timezone)); $ical->addtimeZone(new SG_iCal_VTimeZone($timezone2)); $data['uid'] = new SG_iCal_Line('uid'); //this takes place after Copenhagens change back to standard time $data['dtstart'] = new SG_iCal_Line('DTSTART;TZID=Europe/Copenhagen:20091027T100000'); $data['rrule'] = new SG_iCal_Line('RRULE:FREQ=DAILY;UNTIL=20091030T130000Z'); date_default_timezone_set('America/New_York'); $event = new SG_iCal_VEvent($data, $ical); $this->assertEquals(strtotime('20091030T090000'), $event->getProperty('laststart')); }
public function parseEvent(\SG_iCal_VEvent $event) { $test = new Test(); $test->setName($event->getSummary()); $date = new \DateTime(); $date->setTimestamp($event->getStart()); $test->setDate($date); $test->setNumReminder(0); $test->setId($event->getUID()); $test->setFinishToken((string) rand()); // Check validity of event $description = $event->getDescription(); $res = explode("\n", $description); $teachNameAndInitial = $this->clearParticule($res[count($res) - 2]); if (!$this->isTeacher($teachNameAndInitial)) { throw new BadEventException($test, "Bad event : " . $event->getSummary()); } $test->setTeacher($this->findTeacher($this->getSurname($teachNameAndInitial), $this->getInital($teachNameAndInitial))); return $test; }