Common Use Cases

This is a list of some common use cases that I've seen coming up with time zones in Drupal. There are of course lots more, and anyone who wants to should pile 'em on.

There are 3 main use cases:

  1. Server And Users In the Same Region
  2. Users Come From Many Different Localities, But Generally Want to Post Events In Their Own Local Time.
  3. Users Come From Many Different Localities, But Need To Coordinate Between One Another

I discuss some of the complications and UI problems below.

Server And Users In the Same Region: This is the most common case -- your server has a clearly definable value for "local time", and most of your users also use it. All events are assumed to be in that local time. There are two important sub cases:

  • The local time zone does not observe DST.
  • The local time zone observes DST

The first case is very simple, and Drupal has always handled it well. The second has had a number of bugs that keep popping up:

  • A user is putting in future events for the Spring during February. In this case, in the Northern Hemisphere, during February local time is standard time, but for events in April and later, local time is an hour ahead. Drupal until recently made it very difficult to get the time right in this case.

Users Come From Many Different Localities, But Generally Want to Post Events In Their Own Local Time: This is the typical case in a national political campaign, where events are in "real space", so that people who go to the event will know what local time is. In this case, you want to keep the time zone of an event together with an event. This is less common than the first case, but still pretty common in applications many of us build. Events in this case need UI to set the local time zone.

Users Come From Many Different Localities, But Need To Coordinate Between One Another: This affects groups like us: when we call a conference on IRC, we all need to know when this is in our own local time. This case is a little exotic, but since most of us are developers around here, it's an important one. In this case, each individual user needs UI to set their own time zone, and it's useful to see the time of events in your own local time.

I'm sure there are lots more cases, but these are the ones that come up the most in the Event and related modules.