- Zeitzonenumrechnung für Google und Webmail hinzugefügt

- Englische Lokalisierung hinzugefügt
This commit is contained in:
Andreas Österreicher
2013-01-17 11:36:19 +00:00
parent 8f82b597c2
commit 2d04a4a6e4
4 changed files with 81 additions and 46 deletions
+38 -2
View File
@@ -71,13 +71,26 @@ class ical extends basis_db
{
if($typ=='Google')
{
// VEVENT mit UTC Timestamps
if(mb_strstr($row,'DTSTART:'))
{
$dtstart = mb_substr($row,8,-1);
$dtstart = $this->ConvertTimezone(mb_substr($row,8,-1));
}
elseif(mb_strstr($row,'DTEND:'))
{
$dtend = mb_substr($row,6,-1);
$dtend = $this->ConvertTimezone(mb_substr($row,6));
$this->result[$idx].='FREEBUSY:'.$dtstart.'/'.$dtend."\n";
$dtstart='';
$dtend='';
}
}
elseif($typ=='Webmail')
{
// Freebusy Eintrag mit UTC Timestamps
if(mb_strstr($row,'FREEBUSY:'))
{
$dtstart = $this->ConvertTimezone(mb_substr($row,9,16));
$dtend = $this->ConvertTimezone(mb_substr($row,26));
$this->result[$idx].='FREEBUSY:'.$dtstart.'/'.$dtend."\n";
$dtstart='';
$dtend='';
@@ -127,5 +140,28 @@ class ical extends basis_db
}
}
}
/**
*
* Konvertiert die Zeitzone eines XMLRPC (Compact) datetimes von UTC auf Europe/Vienna
* @param $datetime (zB 20080701T093807Z)
*/
function ConvertTimezone($datetime)
{
if(mb_strpos($datetime,'Z')!==0)
{
//UTC
$timezone = new DateTimeZone('UTC');
}
else
{
//Default
$timezone = new DateTimeZone('Europe/Vienna');
}
$date = new DateTime($datetime, $timezone);
$date->setTimezone(new DateTimeZone('Europe/Vienna'));
return $date->format('Ymd\THis');
}
}
?>