From 03736d142e3b4fe29dbf946baba7bfcc0645d12f Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Thu, 23 Jan 2014 10:03:55 +0100 Subject: [PATCH] Don't shift all-day event dates into server's timezone (#2463) --- .../calendar/drivers/database/database_driver.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/plugins/calendar/drivers/database/database_driver.php b/plugins/calendar/drivers/database/database_driver.php index ddcafab4..f1c63968 100644 --- a/plugins/calendar/drivers/database/database_driver.php +++ b/plugins/calendar/drivers/database/database_driver.php @@ -404,11 +404,13 @@ class database_driver extends calendar_driver */ private function _save_preprocess($event) { - // shift dates to server's timezone - $event['start'] = clone $event['start']; - $event['start']->setTimezone($this->server_timezone); - $event['end'] = clone $event['end']; - $event['end']->setTimezone($this->server_timezone); + // shift dates to server's timezone (except for all-day events) + if (!$event['allday']) { + $event['start'] = clone $event['start']; + $event['start']->setTimezone($this->server_timezone); + $event['end'] = clone $event['end']; + $event['end']->setTimezone($this->server_timezone); + } // compose vcalendar-style recurrencue rule from structured data $rrule = $event['recurrence'] ? libcalendaring::to_rrule($event['recurrence']) : '';