Back
Question
Asked

Show time zone in todo's timestamp? (privacy implications, please read!)

Currently, for each todo you post on the site, we include the UTC datetime that it was posted. We format it as a "relative date" so it says something like "2 hours ago" or "3 weeks ago", etc.

Some people have asked for an option to see the "absolute date" (e.g. 23:02 on 16 November 2023".

Also, sometimes there's confusion about people losing their streaks, due to changing time zones.

So to address both issues, I'm considering adding the following datetime format to each posted todo:

17:40 · 06/08/2024 CEST

It shows the time, date, and the associated time zone. So if you were in the CEST time zone when completing the todo, it would show as such.

In the homepage and profile feeds it would still show the relative date. But when clicking into a specific todo, it would show this absolute date.

My hope is that this is useful in providing a more exact time of when a todo happened. In addition, I hope it clears up any confusion about lost streaks. As is absolute, time-zone adjusted datetime is the exact same data we use to calculate the streaks.

There's one potential issue with this: it exposes the time zone you were in when completing the todo. Which is a rough proxy of your location at that time.

That's why I would like to get your input:

Are you okay with exposing your time zone to the public? (if your profile is set to private, it will of course be limited to members only)

I considered making this user configurable, but that adds a lot of complexity in both code, caching, and user experience. I also considered only showing the time zone to author of each todo, but this leads to similar challenges.

Most people already publicize their location (city or country) in various ways (WIP profile, Twitter profile, Instagram geo-tagged posts, etc). But I want to be mindful about the privacy implications regardless, hence me posing the question to the community first.


No problem with you exposing my tick pics (trying to be funny, not sure it worked out.)

Seems fine to me wrt privacy concerns.

That said: why not add a toggle to turn this on/off on a per-member level instead of per-privacy-setting level? That would make everyone happy, even people that don't want this.

Anything that's configurable per-user complicates things. Examples:

Performance: Toggling that switch would need to wipe out the cache for all your todos.
UX: Requires some type of toggle that's hard to explain out of context (e.g. settings menu), but takes up too much space within the right context (next to the timestamp)
Code: yet another if/else statement (= two branches of logic)

I generally prefer to avoid per-user configuration.

Not sure how you've configured streaks, but you could add a 24h time period after each To Do in which you can't lose your streak if you add another one, no matter the local time/location.

For example: I add a To Do in Amsterdam, January 1st 23:15 and take a flight to Tokyo. Ten hours after my 13 hour flight, (23 hours later) I post my next to do. It's January 3rd, 06:15 local time, so I would lose my streak. But since it's within the 24h time period after my last To Do, I keep my streak.

Saves you some work on implementing time zones, and you don't have to worry about privacy.

I've explored many different ways to do implement streaks. The "as long as it's within 24 hours of the previous one" approach has its own issues. Just one example: if your last completed todo is at 3pm yesterday, and today you complete a todo at 4pm, you'd lose your streak. There's a bunch of other issues you'll run into when you actually try to implement it.

Fortunately, the current streak system works very well and has held up over time. It has support for time zones, etc. No need to change it I think.

The occasional confusion around time zones is that people don't always update them here on the website. In which case it's possible the todo is marked for a different calendar day than they'd expect. Seeing the time zone the todo was completed in helps clarify that.

( In case of your "Amsterdam-Tokyo" example you just make sure to complete a todo sometime on January 2nd (e.g. when you land). If you don't, you did in fact skip a calendar day so the streak being lost is correct behavior. )

I meant the 24h rule as an addition to the current rules (next day OR within 24h), but I havent tried to implement it so I believe you when you say there are more issues!

though, i'd take a leaf from myfitnesspal. let there be a "streak amnesty". if you missed yesterday due to travel or whatever reason, and you fill up the food you took in today, the streak continues. so its effectively 48h :)

would it be complex to only show absolute dates on your own (logged in user) todos, and not the rest of the users on the timeline? this feels like +benefits -downsides

Yes, it's possible. But it means we can't re-use the same cache for everyone. Which isn't horrible, but not ideal either.

Can't you use the reader's timezone? If I'm in CET and they're in WEST, it'll display in WEST time (auto convert). i think moment. js allows you to do this easily

I mean TZ is large is bigger than a country, I don't think it's real issue maybe @levelsio could have pb with that at his scale but not even sure

good with me.

If people are concerned about privacy, maybe a workaround could be showing the timezone details to the user only? (i.e. timezone is not visible to anyone else but the user)

RE: exposing your time zone to the public - Ideally, anyone who is logged in with would only see times through the context of whichever timezone they selected. The rest should be UTC or whichever you pick. The point of the website is to work-in-public so I'm not sure why it would get more complicated then that.