diff --git a/src/CalendarExport.php b/src/CalendarExport.php index 9961e6c..805bb4e 100755 --- a/src/CalendarExport.php +++ b/src/CalendarExport.php @@ -114,23 +114,20 @@ public function getStream() $varName = ($transition['isdst']) ? 'daylightSavings' : 'standard'; ${$varName}['exists'] = true; - if ($this->dateTimeFormat === 'local') { - ${$varName}['start'] = ':' . $this->formatter->getFormattedDateTime(new \DateTime($transition['time'])); - } else if ($this->dateTimeFormat === 'utc') { - ${$varName}['start'] = ':' . $this->formatter->getFormattedUTCDateTime(new \DateTime($transition['time'])); - } else if ($this->dateTimeFormat == 'local-tz') { - ${$varName}['start'] = ';' . $this->formatter->getFormattedDateTimeWithTimeZone(new \DateTime($transition['time'])); - } ${$varName}['offsetTo'] = $this->formatter->getFormattedTimeOffset($transition['offset']); //get previous offset - $previousTimezoneObservance = $transition['ts'] - 100; + $previousTimezoneObservance = $transition['ts'] - 3700; $tzDate = new \DateTime('now', $tz); $tzDate->setTimestamp($previousTimezoneObservance); $offset = $tzDate->getOffset(); ${$varName}['offsetFrom'] = $this->formatter->getFormattedTimeOffset($offset); + + //use previous offset to get local transition start time + $transitionStartLocal = (new \DateTime($transition['time']))->modify($offset.' seconds'); + ${$varName}['start'] = ':' . $this->formatter->getFormattedDateTime($transitionStartLocal); } $this->stream->addItem('TZID:'.$tz->getName());