ICal Export - Zeitzonenkorrektur damit Winterzeit auf Clients korrekt berücksichtigt wird

This commit is contained in:
Andreas Österreicher
2011-08-22 14:04:30 +00:00
parent 6910064ef5
commit f7f1d21955
2 changed files with 25 additions and 8 deletions
+18
View File
@@ -133,6 +133,24 @@ elseif($format=='ical')
header("Pragma: public");
header("Expires: 0");
echo 'BEGIN:VCALENDAR'.$crlf.'VERSION:'.$version.'.0'.$crlf.'PRODID:'.CAMPUS_NAME;
echo '
BEGIN:VTIMEZONE
TZID:Europe/Vienna
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
DTSTART:19810329T020000
TZNAME:GMT+02:00
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
DTSTART:19961027T030000
TZNAME:GMT+01:00
TZOFFSETTO:+0100
END:STANDARD
END:VTIMEZONE';
}
// Print in HTML-File
else
+7 -8
View File
@@ -2126,21 +2126,20 @@ class wochenplan extends basis_db
$sta = explode(":",$start_time); //sta start time array
$eda = explode(".",$end_date); //eda end date array
$eta = explode(":",$end_time); //eta end time array
//Der Zusatz "Z" am Ende legt fest, dass es sich um die Zeitzone UTC handelt
//deshalb werden 2 Stunden von der Zeit abgezogen.
//Die Zeitzone muss angegeben werden, da sonst der Google Kalender die Endzeiten nicht richtig erkennt
$start_date_time_ical = $sda[2].$sda[1].$sda[0].'T'.sprintf('%02s',($sta[0]-2)).$sta[1].$sta[2].'Z'; //neu gruppieren der Startzeit und des Startdatums
$end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0]-2)).$eta[1].$eta[2].'Z'; //neu gruppieren der Startzeit und des Startdatums
// diese wird in stpl_kalender global definiert und bei den Start und Ende Zeiten mitangegeben
$start_date_time_ical = $sda[2].$sda[1].$sda[0].'T'.sprintf('%02s',($sta[0])).$sta[1].$sta[2]; //neu gruppieren der Startzeit und des Startdatums
$end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0])).$eta[1].$eta[2]; //neu gruppieren der Startzeit und des Startdatums
echo $this->crlf.'BEGIN:VEVENT'.$this->crlf
.'UID:'.'FH'.$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical.$this->crlf
.'SUMMARY:'.$lehrfach[$idx].' '.$this->std_plan[$i][$j][$idx]->ort.' - '.$lvb.$this->crlf
.'DESCRIPTION:'.$lehrfach[$idx].'\n'.$this->std_plan[$i][$j][$idx]->lektor.'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort.$this->crlf
.'LOCATION:'.$this->std_plan[$i][$j][$idx]->ort.$this->crlf
.'CATEGORIES:'.$lvplan_kategorie.$this->crlf
.'DTSTART:'.$start_date_time_ical.$this->crlf
.'DTEND:'.$end_date_time_ical.$this->crlf
.'DTSTART;TZID=Europe/Vienna:'.$start_date_time_ical.$this->crlf
.'DTEND;TZID=Europe/Vienna:'.$end_date_time_ical.$this->crlf
.'END:VEVENT';
}
else