From 476fa983c0b8c64c8a28606a1897049e75f4e061 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sat, 26 May 2012 04:30:24 -0400
Subject: [PATCH] Catch DateTime* exceptions (#1488497) - skipping buggy timezones

---
 program/steps/settings/func.inc |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc
index 5b9ad26..da60fea 100644
--- a/program/steps/settings/func.inc
+++ b/program/steps/settings/func.inc
@@ -183,11 +183,14 @@
 
       $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);

--
Gitblit v1.9.1