Why I hate relational timestamping in web apps

I hate relational timestamping. And I don't know if I just made the phrase or if there's a better term for it (maybe fuzzy timestamps), but I think we all know what I mean:

Posted 2 days ago, Posted 16 hours ago, Posted about 2 hours ago, etc.

There are several reasons I hate this format.

  • We use relational timestamps and real timestamps in tandem, requiring a mental "currency conversion" between posts. Example between two items: 3 days ago and Nov 10, 2011
  • It's not as precise as an real timestamp.
  • It takes the user longer to calculate the exact time of a post.
  • In some cases, it eliminates the ability altogether to find an exact timestamp, and that's an important use case that shouldn't be overlooked.

For example, I was reviewing some transactions in a system that uses relational timestamps. In order to figure out exactly what time "22 hours ago" was, I have to do several things:

  1. Look at the clock for the current time
  2. Figure out the quickest way to subtract the number of hours from a 24 hour day
  3. Add or subtract (depending on which is quickest) that number from the nearest day

That's a vastly complicated process for a user instead of just saying 6:45 PM.

Next, I wanted to figure out the frequency of transactions. So how do I figure out the difference between "3 days ago" and "10 Nov 2011"?

  1. First, I have to figure out today's date (probably by looking at a calendar): Nov 18
  2. Now I subtract 3 days from today: Nov 15
  3. Then I have to calculate the difference between Nov 15 and Nov 10: 5 days

That's three steps when an actual date would have eliminated this whole process.

The nay-sayers will say it doesn't require that much brainpower. I'd have to disagree. As a UX/UI guy, I'm always looking for the easiest, simplest solution for the user. I just don't find relational timestamps to be beneficial. They might come in handy for a developer who doesn't want to deal with timezones, but is it worth making a more complex user experience? I don't think so.

If we're going to continue using relational timestamps, we need to find a way to bridge the gap between relational timestamps and real timestamps. This will help reduce friction for users, and for a guy like me, creating a better user experience is the ultimate goal.