timezone gymnastics showing events with wrong dates
Date: February 1, 2015
I also sent this to the webmaster, but thought it might be of more general interest too.
I just created two event announcements last night in Indiana, USA: Afternoon Delight, 8 February, and Caroline!, 10 May.
This morning I saw that they had completed moderation and were visible on the site - and I was horrified to see them both shown with the wrong date (7 February and 9 May, respectively).
So I quickly logged in to find out if there was any way to correct them, and of course as soon as I logged in, they were shown with the correct dates. ??! So just to check, I logged out and viewed them again, and sure enough, to anyone who is not logged in, they are shown with the wrong date! This is kind of worse than not having them announced at all.
What I'm sure is happening is that the event date that I set is being associated with my timezone, which I set to America/Indiana/Indianapolis in my user profile, because it asked, and I was feeling cooperative and all.
Since the event form only asks for a date and not a time, it probably stores the event as something like midnight, Indianapolis time, on 8 February. Then if I view the event when I am logged in, the system shows me the date in the timezone of my user profile, and everything is OK. But for anybody who is not logged in, the system is using some default timezone (Oklahoma, perhaps?) and showing the date a couple hours earlier ... the previous day!
The real fix has to involve changing what the software is doing. At a minimum, the software should stop trying to adjust event dates to show in the viewing user's timezone - it especially needs to stop doing that if the user isn't logged in and it is only guessing the user's in Oklahoma! Instead, it should show the date exactly as it was entered, but also show what timezone that is. For existing events, that would be obtained from the user profile timezone of the user who created the event.
It would be even better to have each event store its own timezone where the event will take place. That could be a selection box on the event entry screen, and be set by default to the profile timezone of the user creating the event. Then, really, the software still shouldn't change the displayed date to any other timezone - it should just show the date as it was entered and what timezone it is.
If really wanted, for a logged-in user, it could perhaps also say (not instead, but also), "this date in YOUR timezone is xxxxxxxx". But really, even that doesn't make sense unless events are created with a full date and time, and not just the date. As long as the event form only collects the date and stores it as midnight on that date, then even a 1 hour timezone offset can result in the wrong date being displayed. (I'm guessing most choralnet events don't really take place at midnight, anyway.)
Am I the first person noticing this, maybe because I'm the first to actually answer the timezone question on my profile page? :)