From 9a8a86efcae2c3c5ff36f71cbba7acd5ce3d4c6f Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Sat, 26 May 2012 10:30:24 +0200 Subject: Catch DateTime* exceptions (#1488497) - skipping buggy timezones --- program/steps/settings/func.inc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index 48d1d5a0b..d2db1dfdd 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -186,11 +186,14 @@ function rcmail_user_prefs($current=null) $now = new DateTime(); foreach (DateTimeZone::listIdentifiers() as $i => $tzs) { - $tz = new DateTimeZone($tzs); - $date = new DateTime('2012-12-21', $tz); - $offset = $date->format('Z') + 45000; - $sortkey = sprintf('%06d.%s', $offset, $tzs); - $zones[$sortkey] = array($tzs, $date->format('P')); + try { + $tz = new DateTimeZone($tzs); + $date = new DateTime('2012-12-21', $tz); + $offset = $date->format('Z') + 45000; + $sortkey = sprintf('%06d.%s', $offset, $tzs); + $zones[$sortkey] = array($tzs, $date->format('P')); + } + catch (Exception $e) {} } ksort($zones); -- cgit v1.2.3