OJS3 - Timestamps fixed in UTC and display no timezone

Hi all,

I was wondering if anyone could shed some light on a date/time query for me. In OJS3 there are (admittedly not very many) timestamps that appear to be fixed in UTC timezone, and do not adapt to the browser’s timezone or clock.

Either a timestamp that includes the timezone, or a timestamp that adapts to the browser, would be something we can live with. However when there are neither of these, it’s a problem as the user will not know whether the time displayed is in their local time, or whether the time is the same for their colleagues in different timezones, thereby reducing the utility of the timestamp severely.

Perhaps there is some configuration that we should be using to correct this? If not, we here are Ubiquity Press are happy to work on a solution. I’ve attached a screenshot of the ‘Review Details’ popup from the submission>workflow>review page, where I’ve seen one timestamp like this. There may well be others. It’d be worth knowing if anyone has seen timestamps displayed like this in other areas of OJS?

Any guidance or discussion would be greatly appreciated.
(PM, Ubiquity Press)

Hi @UP_PFord,

There was some recent discussion of per-user time zones, which are not currently supported. See Per-User Timezone - #3 by maifeld. I’d love to see some improvement make it into OJS here – we haven’t been able to prioritize it yet.

Alec Smecher
Public Knowledge Project Team

Thanks! I’ll look into these other threads and see what we can do. Apologies for starting an additional post about this.

@UP_PFord, I was able to stop-gap this with a format change. I agree that your 12:14 PM in the screen capture is unclear. I added the timezone to our formats such that at least it says 12:14 PM UTC. Not great, but better and at least accurate when each reader presumes their own timezone. I added the %Z to the format of these from config.php:

datetime_format_short = “%Y-%m-%d %I:%M %p %Z”
datetime_format_long = “%B %e, %Y - %I:%M %p %Z”
time_format = “%I:%M %p %Z”

1 Like

This is perfect, @maifeld - thanks so much!

@asmecher, would you like a pull request for config.TEMPLATE.inc.php to make this a default?

Hi @maifeld, yes please - that would be really useful!

Hi @maifeld, thanks for your answer!
We have given your suggestion a try, and it seems to work well when running OJS locally, but for some reason once it is deployed on our servers, the config hasn’t fixed the issue.

If are you running OJS on a server, is there any specific configuration at the OS level that you would recommend we look into? PHP config?

Thank you very much

I run OJS on a VPS that’s CentOS 7. Does your server have the timezone set in /etc/timezone? I use UTC on all my Internet servers. What timezone do you see in the datetime formatted string on the server as opposed to locally?

Hi @maifeld I am glad to see that our conversation here has sparked a pull request!

Out of curiosity, are you experiencing the issue where changing timezone in the config is not enough to actually display the OJS info in the right timezone?

I am interested, as well! I did change the date formatting string to include the timezone everywhere it appears. I did not fiddle with the config.php for the default timezone because this is a production instance.

Adding the timezone is just a kludge for the real problem. We have OJS participants spread across all American timezones. Our Editor is Central, say an example Submission Author is Eastern, an example Peer Reviewer is Pacific. On a phone call, Author says to PR, “That thing you said at 4pm yesterday in the Discussion” and the PR says, “I was in a meeting at 4pm.” At the very least, if the times are labelled UTC each person can mentally convert. Without displaying the timezone, each person thinks the time is in their local timezone.

I installed FreeScout recently and I note that they use per-profile/per-user timezones for just this reason (see the $user->timezone):