2

I've got an elapsed time (to millisecond precision), and I'd like to format it for human consumption.

For example:

  • 500ms = 500ms
  • 1500ms = 1.5s
  • 90000ms = 1m30s (or 90s?)
  • 2790000ms = 46m30s

...etc.

Are there any UX guidelines for where the various breaks should be? When do I move from milliseconds to fractional seconds? From seconds to minutes?

Actually, I have two kinds of elapsed times: the first are usually of the order of seconds (something took ~4s to run); the second are of the order of tens of minutes (the total time was ~45 minutes, nothing longer than 90 minutes). Does that make a difference?

More about my specific case: the times are displayed at the end of a test run. The report displays the time for each test (usually ~200ms, sometimes ~5 seconds, rarely ~20 seconds), followed by the total elapsed time (~20 minutes).

For each test, the time is important, because it lets someone see where their effort might best be spent -- there's more value in speeding up a 20 second test than a 200ms test. The total time is useful because it tells you whether you need to spend that effort at all.

Assume UK English.

1
  • Can you add more on what the times represent (you mention "developers" in a comment, so possibly they're "build times"), and why, and how strongly, the user "cares" about them? Showing /formatting "the time something took" (after it's finished) might be done differently to a progress bar showing "time taken so far" (especially if a guestimate of total time is available).
    – TripeHound
    Aug 8, 2019 at 10:02

3 Answers 3

1

When formatting durations (or any other measurements, for that matter), make sure that the precision you provide aligns with your intended users and usages.

For example, for a scientist, the difference between 778 ms and 812 ms might be crucial, whereas for a less tech-savvy user, "about a second" would be just fine for either duration, and also much easier to digest.

Here's a screenshot from macOS that uses that latter approach to estimate the remaining time required to copy a larger file. (The less-precise, but perfectly adequate "About a minute" also avoids the annoying jumping back and forth between estimates in seconds: "51 seconds left", "48 seconds left", "52 seconds left". You get the idea. ;) )

enter image description here

You already state that there are two duration ranges in your application: a couple of seconds, or a few tens of minutes. In that case, "About x seconds" and "About yy minutes" might work just fine, with the option of appending seconds for the latter as needed.

As always, user-test to confirm these kinds of assumptions. ;)

BTW, if I may: when displaying units, kindly apply the common formatting standards and established unit symbols. The Wikipedia article on the International System of Units covers these in sections "Non-SI units accepted for use with SI" and "Unit symbols and the values of quantities".

(Compare 1m30s to 1 min 30 s.)

0

I might be wrong but people don't like unnecessary thinking.

Google "seven second delay decision making", and "95% brain activity is beyond conscious awareness". MRI studies strongly suggest, that the subconscious creates every thought, idea, or decision.

Almost everyone know how long a second takes. But when it comes to milliseconds, requires more cognitive load.

Personally (haven't been tested), I think it's easier to understand 1m 30s than 90s. Even 0.5s is better to understand than 500ms.

2
  • This output is targetted at developers, so I feel like 500ms is OK. But I take your point. Jul 5, 2019 at 10:16
  • 1
    I mean if this is about cognition (just to know time is passing), 0.5 is better. But when it's about precise calculations (performance issues for example) and need to be understood exactly, 500ms works better. It's all about necessity.
    – Omid
    Jul 5, 2019 at 10:34
0

One option would be to display "time bars" against each test, where the length of the bar represents the time the test took. However, to do this "properly" you would need to know the time for all tests before the first can be shown so that you can get the correct scaling. Plus, you would still probably want to show the time in numbers, so you would still have to decide the format for them.

If you want to display the times as the tests are being run, or it is helpful for other reasons to list the tests in some predefined "test order", one possibility is to use different columns for tests that take a number of milliseconds, a number of seconds, and a number of minutes. For example:

-----------------------------------------
Unit Test 1           50ms
Unit Test 2          300ms
Unit Test 3                     1s
Unit Test 4           90ms
Unit Test 5                    45s
Long Boring Test 1                     4m
Unit Test 6                    17s
-----------------------------------------
Total Test Time                        5m
-----------------------------------------

The idea being that it is much easier to distinguish 45s from 50ms when they are in separate columns. (You could, of course, use sec and min for the units if desired). Additionally, if the summary is generated only after all tests have been run, you could mark the longest test, if that is felt helpful.

If the order that the tests are listed in is not important (and there is no problem waiting until all tests have completed before displaying the summary) then you could simply order the tests from longest to shortest:

-----------------------------------------
Long Boring Test 1                     4m
Unit Test 5                    45s
Unit Test 6                    17s
Unit Test 3                     1s
Unit Test 2          300ms
Unit Test 4           90ms
Unit Test 1           50ms
-----------------------------------------
Total Test Time                        5m
-----------------------------------------

You could still use separate columns, as I have above, or – since the tests are now listed in length-order – you could show all figures in one column.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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