From: Jan Schneider Date: Wed, 30 Jun 2010 15:48:16 +0000 (+0200) Subject: Set correct timezone when parsing ISO date strings from the UTC timezone. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=d4b6994753687e423f469cd6dffe15c7ba5d09e7;p=horde.git Set correct timezone when parsing ISO date strings from the UTC timezone. --- diff --git a/framework/Date/lib/Horde/Date.php b/framework/Date/lib/Horde/Date.php index e5103d7a1..12468c730 100644 --- a/framework/Date/lib/Horde/Date.php +++ b/framework/Date/lib/Horde/Date.php @@ -212,7 +212,7 @@ class Horde_Date $this->_initializeFromObject($date); } elseif (is_array($date)) { $this->_initializeFromArray($date); - } elseif (preg_match('/(\d{4})-?(\d{2})-?(\d{2})T? ?(\d{2}):?(\d{2}):?(\d{2})(Z?)/', $date, $parts) && + } elseif (preg_match('/(\d{4})-?(\d{2})-?(\d{2})T? ?(\d{2}):?(\d{2}):?(\d{2})(?:\.\d+)?(Z?)/', $date, $parts) && empty($parts[7])) { $this->_year = (int)$parts[1]; $this->_month = (int)$parts[2]; @@ -220,6 +220,9 @@ class Horde_Date $this->_hour = (int)$parts[4]; $this->_min = (int)$parts[5]; $this->_sec = (int)$parts[6]; + if ($parts[7]) { + $this->_initializeTimezone('UTC'); + } } elseif (preg_match('/^(\d{4})-?(\d{2})-?(\d{2})$/', $date, $parts) && $parts[2] > 0 && $parts[2] <= 12 && $parts[3] > 0 && $parts[3] <= 31) {