public function testParsingOfStartTimeAndEndTimeOverDaylightChange() { $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 = new SG_iCal(); $ical->addTimeZone(new SG_iCal_VTimeZone($timezone2)); $data['uid'] = new SG_iCal_Line('uid'); $data['dtstart'] = new SG_iCal_Line('DTSTART;TZID=Europe/Copenhagen:20091023T2100'); $data['dtend'] = new SG_iCal_Line('DTEND;TZID=Europe/Copenhagen:20091030T140000'); date_default_timezone_set('America/New_York'); $event = new SG_iCal_VEvent($data, $ical); $this->assertEquals(strtotime('20091023T150000'), $event->getStart()); $this->assertEquals(strtotime('20091030T090000'), $event->getEnd()); }
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; }