From 4b0e355e1c22f97fc21c8c540939ba8cd010b803 Mon Sep 17 00:00:00 2001 From: Thomas Date: Fri, 5 Aug 2011 00:22:28 +0200 Subject: [PATCH] Fix saving of all-day event in DB backend --- plugins/calendar/drivers/database/database_driver.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/calendar/drivers/database/database_driver.php b/plugins/calendar/drivers/database/database_driver.php index 89118ba0..5904a377 100644 --- a/plugins/calendar/drivers/database/database_driver.php +++ b/plugins/calendar/drivers/database/database_driver.php @@ -344,6 +344,10 @@ class database_driver extends calendar_driver $event['free_busy'] = intval($this->free_busy_map[strtolower($event['free_busy'])]); if (isset($event['allday'])) { + // set times to 00::00 and 23:59 (assuming the PHP and DB timezones are in sync) + $numdays = max(1, round(($event['end'] - $event['start']) / 86400)); + $event['start'] = mktime(0, 0, 0, date('n', $event['start']), date('j', $event['start']), date('Y', $event['start'])); + $event['end'] = $event['start'] + $numdays * 86400 - 60; $event['all_day'] = $event['allday'] ? 1 : 0; }