Page MenuHomePhabricator

Meta event registration tool shows start and end time in different timezone when not logged in
Open, Needs TriagePublicBUG REPORT

Description

Steps to replicate the issue

What happens?

The start and end time is wrong... seems that the timezone is not properly taken into account... "09:00-12:00 Timezone +00.00" is wrong.

What should have happened instead?

The event starts at 11:00 and ends at 14:00 (GMT+1, Brussels time).
The event start and end time is properly shown when being logged in to Wikipedia/Wikimedia.
Start and end time should always be displayed correctly, irrespective if being logged in, or not.

Other information:

This is very confusing for potential participants... start and end time are completely wrong...

Event Timeline

Daimona added subscribers: gonyeahialam, ifried.

What you're seeing here is intended behaviour, sort of. For online events (where a participant does not have to travel physically), we display the date and time in the user's preferred time zone, as that should be the most relevant to them. For instance, if I'm based in New York (currently UTC -4) and want to attend this event, I'm more interested in knowing its equivalent NY time (in your example, 5:00 - 8:00) to see if I can attend. When you are logged out, however, you can't set a preferred time zone, and therefore it falls back to the wiki's time zone; for meta, this would be UTC, hence that's what you see when logged out. Maybe, this might be improved by falling back to the event timezone when a user preference isn't available; curious to hear what @ifried @gonyeahialam think about it.

Do note, however, that the start and end time are never wrong. They're just shown in a different time zone.

Aklapper renamed this task from Meta event registration tool shows start and end time wrongly when not logged in to Meta event registration tool shows start and end time in different timezone when not logged in.Tue, Apr 16, 12:19 PM

Thanks for explaining, @Daimona!

@Geertivp and @Johannnes89, I'm curious to hear what you think of how we currently handle timezones. Do you think it makes sense, or would you suggest something else?

I'm fine with the way it currently is. But given that some people apparently don't realize that „Timezone: +00:00“ means UTC this could probably be added?

I like Daimona's idea of displaying the event timezone when a user preference isn't available, although this could also confuse users who browse through events in different time zones? Is it possible to use the browser time for logged-out users?

This is exactly the problem. When the user is not logged in, the browser timezone should be taken into account, instead of displaying just the UTC time. The user should not be required to manually recalculate the time.
There exists a JavaScript function to do so: https://stackoverflow.com/questions/6939685/get-client-time-zone-from-browser

const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
console.log(tz);

I'm fine with the way it currently is. But given that some people apparently don't realize that „Timezone: +00:00“ means UTC this could probably be added?

Yup, that is tracked in T325300 (not currently being worked on, but can be reconsidered).

I like Daimona's idea of displaying the event timezone when a user preference isn't available, although this could also confuse users who browse through events in different time zones? Is it possible to use the browser time for logged-out users?

Yeah, unfortunately the whole time zone thing is a huge mess (and I'm talking about life, not the event registration tool) and I'm afraid there's bound to be confusion no matter what we do. Still, I think using the browser setting should be doable, with the caveat that it wouldn't appear immediately on page load (you would get the "default" time zone for a split second, then it'd update to the browser setting).

Maybe display both the user timezone and the UTC timezone in a clear form: 10:00 CEST (8:00 UTC).

An other way could be: display the hour in the timezone choosen by the organizer + the user timezone (and get rid of the UTC). Example : 10:00 PDT (19:00 CEST)