Drupal: Timezones and places
| drupal, geekThe Drupal date_timezone module (part of Date) lets you use city names instead of timezone offsets in order to select a timezone, and that picks up Daylight Savings Time rules in a reasonably good manner, too.
A long list of cities can be hard to work with, though. This list is equally long, but it’s organized by GMT offset, which people are also likely to know.
Index: date_api.module =================================================================== --- date_api.module (revision 2404) +++ date_api.module (working copy) @@ -490,6 +490,14 @@ } } } + + // Now reformat the zonenames so that they're of the form (GMT+0800) Asia/Manila + foreach ($zonenames as $name => $zone) { + $x = date_make_date('now', $name); + $list[$name] = '(GMT' . date_format($x, 'P') . ') ' . str_replace(' ', '_', $zone); + } + asort($list); + $zonenames = $list; if (!empty($zonenames)) { cache_set('date_timezone_identifiers_list', 'cache', serialize($zonenames)); }
There’s probably a much more efficient way to do this, but hey, it works.
You can comment with Disqus or you can e-mail me at sacha@sachachua.com.