diff options
author | Bart Visscher <bartv@thisnet.nl> | 2011-08-29 14:51:04 +0200 |
---|---|---|
committer | Bart Visscher <bartv@thisnet.nl> | 2011-08-30 00:08:01 +0200 |
commit | c769f961ab7acbcf38c2c0c53bda17c579cb7678 (patch) | |
tree | 4f26475376cfbf57304b61c666d138c66dfa4ec3 | |
parent | f18af2c60dab9d1feb94e6e14e3a9bead56f336e (diff) | |
download | nextcloud-server-c769f961ab7acbcf38c2c0c53bda17c579cb7678.tar.gz nextcloud-server-c769f961ab7acbcf38c2c0c53bda17c579cb7678.zip |
Convert DB startdate and enddate to the user timezone
-rw-r--r-- | apps/calendar/templates/part.getcal.php | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/apps/calendar/templates/part.getcal.php b/apps/calendar/templates/part.getcal.php index 3e9a8f5799d..1f434f7d681 100644 --- a/apps/calendar/templates/part.getcal.php +++ b/apps/calendar/templates/part.getcal.php @@ -3,26 +3,32 @@ $calendars = OC_Calendar_Calendar::allCalendars(OC_User::getUser(), 1); $events = OC_Calendar_Calendar::allCalendarObjects($calendars[0]['id']); $select_year = $_GET["year"]; $return_events = array(); +$user_timezone = OC_Preferences::getValue(OC_USER::getUser(), "calendar", "timezone", "Europe/London"); foreach($events as $event) { if ($select_year != substr($event['startdate'], 0, 4)) continue; - list($date, $time) = explode(' ', $event['startdate']); - list($year, $month, $day) = explode('-', $date); - list($hour, $min) = explode(':', $time); - $hour = (int)$hour; + $start_dt = new DateTime($event['startdate'], new DateTimeZone('UTC')); + $start_dt->setTimezone(new DateTimeZone($user_timezone)); + $end_dt = new DateTime($event['enddate'], new DateTimeZone('UTC')); + $end_dt->setTimezone(new DateTimeZone($user_timezone)); + $year = $start_dt->format('Y'); + $month = $start_dt->format('n') - 1; // return is 0 based + $day = $start_dt->format('j'); + $hour = $start_dt->format('G'); // hack if (strstr($event['calendardata'], 'DTSTART;VALUE=DATE:')) { $hour = 'allday'; } $return_event = array(); - foreach(array('id', 'calendarid', 'objecttype', 'startdate', 'enddate', 'repeating') as $prop) + foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop) { $return_event[$prop] = $event[$prop]; } + $return_event['startdate'] = $start_dt->format('Y-m-d H:i'); + $return_event['enddate'] = $end_dt->format('Y-m-d H:i'); $return_event['description'] = $event['summary']; - $month--; // return is 0 based if (isset($return_events[$year][$month][$day][$hour])) { $return_events[$year][$month][$day][$hour][] = $return_event; |