This question is spawned out of a discussion on the meta forums for Discourse, a modern take on forum software being developed by our very own Jeff Atwood.

Which date/time formatting provides the best user experience for displaying the time beside each post that it was posted?

Currently on Discourse, by default it does the following:

  • '10 minutes' / '2 days', etc
  • Dates are then formatted as '6 Jun 13' when they're further in the past

In the forum thread I linked in my foreword, many of us are of the opinion that 'ago' should be appended to the relative date formats - i.e. '10 minutes ago', '2 days ago', etc.

We feel that this is much clearer than just outputting a quantity of time, leaving it up to the user to determine what is meant. Granted there isn't much else it could refer to, but in many mainstream/older forum software, the join date of users is listed below avatars, so I think there is some scope for confusion.

The arguments against adding 'ago' to the date are that:

  • It's obvious what dates next to posts mean, there is no need for it.
  • They don't want to render 'ago' after every post unnecessarily.

What is the most pro-UX way of formatting relative date formats? ('2 days' or '2 days ago')

  • 3
    I would go with the famous rule of thumb "Don't make me think!" (Krug). When there is no "ago", the inference the user must make, albeit trivial, is an unnecessary mental load. – Dvir Adler Jun 9 '13 at 10:03

If you want to refer to a point in time, you need to either give the time, or give a relative time. So that translates to either something like 11:32 today or 5 hours ago. Simply stating "5 hours" tells you nothing really as it is a measurement of a duration of time and nothing more without a reference point. So don't use this.

When people use forums and they are looking at more recent posts, it makes sense to show them the information in the format that the would typically use when speaking to someone else. "When did that happen? 5 Hours ago".

But when you're looking at much older posts, the chances are that a person will think in terms of a larger timeframe, so 1634 days ago is much less useful than Sep 21 '07 at 17:24. So when a post gets older than a few days, change to showing the date and time (if necessary).

Then you should also state what the time refers to. So adding a word like "asked", "created", "edited", or "deleted" makes a world of difference to the clarity, and should be included.

This site, as well as all the other StackExchange sites, handle this well, and I would use them as a guide.

TL;DR: Use "asked 5 hours ago" when it's recent, and "asked Sep 21 '11 at 17:24" when it's older

| improve this answer | |
  • 1
    "at 17:24"? If you don't need one-minute granularity for recent posts ("5 hours ago"), you certainly don't need it for two-year-old posts either. – dbkk Jun 9 '13 at 14:48
  • 1
    @dbkk If you include the time at all, it makes sense to include minutes, otherwise you give misinformation. If you were to show it as 17:00 or 17:30, it implies that it is the exact time, and you don't gain anything by reducing the granularity. If you feel that only the date is relevant, then by all means leave the time out, but reporting an inaccurate time gains nothing and loses a lot. – JohnGB Jun 9 '13 at 16:50
  • @JohnGB - I think dbkk has a point. In an application like Discourse (which this question is about), the date should be formatted with less presicion the longer it was (with the minimum-precision being the day and month). – Anonymous Jun 10 '13 at 11:11
  • 2
    @Anonymous I'm not disagreeing with that. I'm saying that if you give a time and not just a date, there is not benefit of reducing the time precision. In general I think that just a date would be fine for most situations. – JohnGB Jun 10 '13 at 13:25
  • @JohnGB - Ah, I understand what you meant now. I think dbkk meant to leave the time out altogether rather than minute-granularity as he put it. – Anonymous Jun 10 '13 at 13:45

I don't like the "5 minutes ago" or "two months ago" convention at all.

I can tolerate "5 minutes ago", but when a dozen posts are all "two months ago" I want to know more granular detail to determine who posted first.

I'd much rather see a real date and a real time, adjusted to my time zone, which I can select when I register to the site. If that is not possible, show me the GMT equivalent or at least show the time zone that applies to the site for the post date/time stamp.

Even with StackExchange sites, i don't know what time zone applies to the time stamp shown for older posts. If a comment is new it shows as "2 hours ago". Fine. But if a comment is a few weeks old it shows as Jun 10 13 at 13:35 -- But is that GMT or PDT or New Zealand time? I'm fairly certain it is not the time zone of the OP, unless they happen to be in the same time zone as the SO servers.

A time stamp can tell a story. If I know what time zone a member lives in the UK, I can see by the time stamp if they are burning the midnight oil or are on a pre-breakfast question run. I can see whether they answer questions during their business hours.

But to see that I need to see the time zone of the time stamp.

The time stamp on this site is useless, since I cannot tell what it means in relation to my time zone.

Real-world example:

In my project team there are a few contractors, who are paid for the work they do at an hourly rate. They register their hours worked in time sheets. I expect them to use these registered hours for my company only. I know that these contractors are also contributors at SO sites and I check their profiles. Looking at their post history, I can NOT tell if they posted their comments during the hours that they charged my company for their work.

I can see that they posted a comment on Jun 10 13 at 13:35 but it is impossible to tell what that means with regards to my time zone.

| improve this answer | |
  • I agree with what you say, and you have some good points. But with Discourse (what my question was mainly about), it's a flat-discussion forum, so you always know who posted first. – Anonymous Mar 26 '14 at 10:55

The negative example 11:32 today in JohnGB's answer has another drawback: it should carry the timezone to be meaningful.
UX-wise, yes we want to know the age of the posts we are reading, because we reaction differently depending on it.
So we look at the date information and mentally calculate the post's age, to find out if it's recent, rather old, legacy, archaeological.
Thus, the idea of telling the post ages instead of their dates and times is the right one.
Up to a limit when technical issues tend to become obsolete.
Like for example a question about nodejs can become obsolete in a few weeks (like, how to install npm) while a COBOL question can remain meaningful for years if not decades.
That limit dictates when to start showing dates instead of ages.
With a twist: it should be considered if it's desirable to switch from age to date within a single "thread", because it might break the user's flow state (that is, make them think).
Also, it'a a good idea not to show the year when it's the current one (as it's currently dome in SE and UNIX directory listings). In real life we omit it when we tell dates to other people to avoid communicating redundant information.
About displaying or not the appended ago, it wouldn't be needed it the data was in a column by itself labeled "age".
In SE the post age is part of a phrase like "asked dec 6 by Jon Doe" or "asked Nov 20 '08 at 19:44".
In this last example I would omit the "at 19:44" part, like in "the world was created a zillion years ago at 19:44". It adds noise by providing irrelevant data.
Showing two or three pieces of daa in a single phrase is a good thing, because it reduces the user's cognitive load in that they find out what they want to know with a single stroke instead of two or three.
Another minor detail is the capitalization of month names. En English it's the rule, but in the other hand it's not the name but an abbreviation and the all-lowercase text is leaner = easier to grok. On the other other hand, many people can't avoid cringing at orthography errors. What do the english.stackexchange users say, did anybody complain? If I'm the only weirdo then never mind.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.