Timezones are ordered as strings, not as numbers. As a result UTC+N are ordered as 1 10 11 12 2 3 4. Here is patch, which fixes order.

Index: event_timezones.inc
===================================================================
--- event_timezones.inc (revision 99)
+++ event_timezones.inc (working copy)
@@ -590,10 +590,10 @@
                     298 => array('timezone' => t('EST'), 'offset' => '-18000', 'offset_dst' => '-18000', 'dst_region' => '0'),
                     300 => array('timezone' => t('Egypt'), 'offset' => '+7200', 'offset_dst' => '+10800', 'dst_region' => '1'),
                     301 => array('timezone' => t('Eire'), 'offset' => '+0', 'offset_dst' => '+3600', 'dst_region' => '13'),
+                    305 => array('timezone' => t('Etc/GMT-12'), 'offset' => '-43200', 'offset_dst' => '-43200', 'dst_region' => '0'),
+                    304 => array('timezone' => t('Etc/GMT-11'), 'offset' => '-39600', 'offset_dst' => '-39600', 'dst_region' => '0'),
+                    303 => array('timezone' => t('Etc/GMT-10'), 'offset' => '-36000', 'offset_dst' => '-36000', 'dst_region' => '0'),
                     302 => array('timezone' => t('Etc/GMT-1'), 'offset' => '-3600', 'offset_dst' => '-3600', 'dst_region' => '0'),
-                    303 => array('timezone' => t('Etc/GMT-10'), 'offset' => '-36000', 'offset_dst' => '-36000', 'dst_region' => '0'),
-                    304 => array('timezone' => t('Etc/GMT-11'), 'offset' => '-39600', 'offset_dst' => '-39600', 'dst_region' => '0'),
-                    305 => array('timezone' => t('Etc/GMT-12'), 'offset' => '-43200', 'offset_dst' => '-43200', 'dst_region' => '0'),
                     306 => array('timezone' => t('Etc/GMT-2'), 'offset' => '-7200', 'offset_dst' => '-7200', 'dst_region' => '0'),
                     307 => array('timezone' => t('Etc/GMT-3'), 'offset' => '-10800', 'offset_dst' => '-10800', 'dst_region' => '0'),
                     308 => array('timezone' => t('Etc/GMT-4'), 'offset' => '-14400', 'offset_dst' => '-14400', 'dst_region' => '0'),
@@ -604,11 +604,6 @@
                     313 => array('timezone' => t('Etc/GMT-9'), 'offset' => '-32400', 'offset_dst' => '-32400', 'dst_region' => '0'),
                     487 => array('timezone' => t('Etc/GMT'), 'offset' => '+0', 'offset_dst' => '+0', 'dst_region' => '0'),
                     314 => array('timezone' => t('Etc/GMT+1'), 'offset' => '+3600', 'offset_dst' => '+3600', 'dst_region' => '0'),
-                    315 => array('timezone' => t('Etc/GMT+10'), 'offset' => '+36000', 'offset_dst' => '+36000', 'dst_region' => '0'),
-                    316 => array('timezone' => t('Etc/GMT+11'), 'offset' => '+39600', 'offset_dst' => '+39600', 'dst_region' => '0'),
-                    317 => array('timezone' => t('Etc/GMT+12'), 'offset' => '+43200', 'offset_dst' => '+43200', 'dst_region' => '0'),
-                    318 => array('timezone' => t('Etc/GMT+13'), 'offset' => '+46800', 'offset_dst' => '+46800', 'dst_region' => '0'),
-                    319 => array('timezone' => t('Etc/GMT+14'), 'offset' => '+50400', 'offset_dst' => '+50400', 'dst_region' => '0'),
                     320 => array('timezone' => t('Etc/GMT+2'), 'offset' => '+7200', 'offset_dst' => '+7200', 'dst_region' => '0'),
                     321 => array('timezone' => t('Etc/GMT+3'), 'offset' => '+10800', 'offset_dst' => '+10800', 'dst_region' => '0'),
                     322 => array('timezone' => t('Etc/GMT+4'), 'offset' => '+14400', 'offset_dst' => '+14400', 'dst_region' => '0'),
@@ -617,7 +612,12 @@
                     325 => array('timezone' => t('Etc/GMT+7'), 'offset' => '+25200', 'offset_dst' => '+25200', 'dst_region' => '0'),
                     326 => array('timezone' => t('Etc/GMT+8'), 'offset' => '+28800', 'offset_dst' => '+28800', 'dst_region' => '0'),
                     327 => array('timezone' => t('Etc/GMT+9'), 'offset' => '+32400', 'offset_dst' => '+32400', 'dst_region' => '0'),
-                    328 => array('timezone' => t('Europe/Amsterdam'), 'offset' => '+3600', 'offset_dst' => '+7200', 'dst_region' => '13'),
+                    315 => array('timezone' => t('Etc/GMT+10'), 'offset' => '+36000', 'offset_dst' => '+36000', 'dst_region' => '0'),
+                    316 => array('timezone' => t('Etc/GMT+11'), 'offset' => '+39600', 'offset_dst' => '+39600', 'dst_region' => '0'),
+                    317 => array('timezone' => t('Etc/GMT+12'), 'offset' => '+43200', 'offset_dst' => '+43200', 'dst_region' => '0'),
+                    318 => array('timezone' => t('Etc/GMT+13'), 'offset' => '+46800', 'offset_dst' => '+46800', 'dst_region' => '0'),
+                    319 => array('timezone' => t('Etc/GMT+14'), 'offset' => '+50400', 'offset_dst' => '+50400', 'dst_region' => '0'),
+                   328 => array('timezone' => t('Europe/Amsterdam'), 'offset' => '+3600', 'offset_dst' => '+7200', 'dst_region' => '13'),
                     329 => array('timezone' => t('Europe/Andorra'), 'offset' => '+3600', 'offset_dst' => '+7200', 'dst_region' => '13'),
                     330 => array('timezone' => t('Europe/Athens'), 'offset' => '+7200', 'offset_dst' => '+10800', 'dst_region' => '13'),
                     331 => array('timezone' => t('Europe/Belfast'), 'offset' => '+0', 'offset_dst' => '+3600', 'dst_region' => '13'),
@@ -757,4 +757,4 @@
                   );
   }
   return $zones;
-}
\ No newline at end of file
+}

Comments

gerhard killesreiter’s picture

Version: 5.x-2.x-dev » 5.x-1.x-dev

This is for 5.1. In 5.2 the timezones are in the database.

japerry’s picture

Status: Reviewed & tested by the community » Closed (outdated)

Event for Drupal 8 is unrelated to older versions. If an issue similar to this one exists, please open a new issue with the 8.x branch.