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
Comment #1
gerhard killesreiter commentedThis is for 5.1. In 5.2 the timezones are in the database.
Comment #2
japerryEvent 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.