fix timezone for repeating events

This commit is contained in:
Georg Ehrke 2011-11-12 22:30:09 +01:00
parent a303992d78
commit 89b3a395df
1 changed files with 3 additions and 3 deletions

View File

@ -39,7 +39,9 @@ foreach($events as $event){
$dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent); $dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
$return_event = array(); $return_event = array();
$start_dt = $dtstart->getDateTime(); $start_dt = $dtstart->getDateTime();
$start_dt->setTimezone(new DateTimeZone($user_timezone));
$end_dt = $dtend->getDateTime(); $end_dt = $dtend->getDateTime();
$end_dt->setTimezone(new DateTimeZone($user_timezone));
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE){ if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE){
$return_event['allDay'] = true; $return_event['allDay'] = true;
}else{ }else{
@ -49,7 +51,7 @@ foreach($events as $event){
if($event['repeating'] == 1){ if($event['repeating'] == 1){
$duration = (double) $end_dt->format('U') - (double) $start_dt->format('U'); $duration = (double) $end_dt->format('U') - (double) $start_dt->format('U');
$r = new When(); $r = new When();
$r->recur((string) $dtstart)->rrule((string) $vevent->RRULE); $r->recur((string) $start_dt->format('Ymd\THis'))->rrule((string) $vevent->RRULE);
while($result = $r->next()){ while($result = $r->next()){
if($result->format('U') > $_GET['end']){ if($result->format('U') > $_GET['end']){
break; break;
@ -71,8 +73,6 @@ foreach($events as $event){
$end_dt->modify('-1 sec'); $end_dt->modify('-1 sec');
$return_event['end'] = $end_dt->format('Y-m-d'); $return_event['end'] = $end_dt->format('Y-m-d');
}else{ }else{
$start_dt->setTimezone(new DateTimeZone($user_timezone));
$end_dt->setTimezone(new DateTimeZone($user_timezone));
$return_event['start'] = $start_dt->format('Y-m-d H:i:s'); $return_event['start'] = $start_dt->format('Y-m-d H:i:s');
$return_event['end'] = $end_dt->format('Y-m-d H:i:s'); $return_event['end'] = $end_dt->format('Y-m-d H:i:s');
$return_event['allDay'] = false; $return_event['allDay'] = false;