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 e-mail me at sacha@sachachua.com.