summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2011-08-29 14:51:04 +0200
committerBart Visscher <bartv@thisnet.nl>2011-08-30 00:08:01 +0200
commitc769f961ab7acbcf38c2c0c53bda17c579cb7678 (patch)
tree4f26475376cfbf57304b61c666d138c66dfa4ec3
parentf18af2c60dab9d1feb94e6e14e3a9bead56f336e (diff)
downloadnextcloud-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.php18
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;