views:

578

answers:

16

I have a form that asks users to enter a start and end time for an event. For many years, we have allowed them to enter the times by selecting the hour (1-12), minute (1-60), and AM/PM from three drop down boxes. This has worked fine without complaints from customers. However, today I was hit with a request to change the input to one text box for the user to enter time in military time (aka 0000 - 2359). In my gut I believe this is a bad idea but am having trouble coming up with any hard facts.

What are the best reasons I can give that this would be a bad idea?

If there is a better solution for entering time, what would it be?

Also, FYI the users filling out the form run the gamut from very little skill with computers to advanced users. They are in no way military related.

Update: All my users are local and no other forms (web or print) use military time as the standard.

+16  A: 

Three dropdowns are a nightmare usability-wise. You can cut these down to two by eliminating AM/PM and moving to 24-hour format, but still: a dropdown with 60 items is overkill.

I'd much prefer to enter time "manually", provided that these input boxes will be intelligent enough (say, they should be able to convert 18 to 1800, 0 to 0000, allow : as a separator, etc.). Plus do not allow users to enter incorrect data in the first place.

To answer your question: I see no reason to disallow your users to do what they want. After all, they are users.

Anton Gogolev
+1: dropdowns are horrible. Think of it from the user's perspective; they don't think of the time in dropdowns, they think of it as "6:30" and it's much better for them to be able to type this into a box. You have to validate the date on the server *anyway* so garbage submissions aren't a reason to do this; check the value when the field loses focus and present a warning if it's unintelligible.
Andrzej Doyle
Can't your form read a time field and use the fact that a time entered is > "1200" and <= "2400", then set the AM/PM accordingly? Multiple separate boxes is a horrible interface for time entry. You *could* have a "Use 24-hour time entry" selector somewhere.
DaveE
+1  A: 

I can see why you think this is a bad idea, silly users input wrong format etc.

However have you considered a jQuery Masked input box?

Rippo
JQuery doesnt work in WPF, Win-Forms, etc. OP doesn't specify his medium.
Muad'Dib
True. But a masked input box is still a good solution for whatever gui he is using.
Rippo
I tend to find masked input boxes horrible to navigate... too highly trained possibly (-:
Murph
+3  A: 

"They are in no way military related."

That's a good enough reason for me. It's an uncommon format that, while not exactly "user-hostile," is nonetheless not the way most of us are used to seeing dates, and requiring your users to do the conversion in their head will lead to arithmetic errors eventually.

That said, drop-down boxes aren't great either. Best to go with 2 input boxes and an AM/PM dropdown, in my opinion.

Reynolds
"It's an uncommon format": it's super comfortable to type in, since you don't have to hunt the colon between HH and MM. if the program is not smart enough to recognize that 1130 is 11:30, or that 130 is 01:30, then it's simply dumb.
just somebody
Uncommon in the US, perhaps, but very common in Europe.Are all the users local?
Useless
Depends on the country however - the US, Canada and Australia are somewhat out of place for their heavy use of 12 hour time for both oral and written communication, and the US stands out even more as 12 hour time is even used in time sensitive areas like scheduling (the US military being the one notable exception). Most of the rest of the world uses either a 24 hour clock for everything, or very often, a 24 hour clock for written and formal use, and a 12 hour clock for casual conversation.
David
Juste for your information, french canada use 24 hours, not 12. I don't know for the rest of the country though :)
David Brunelle
Yes, I am aware that Quebec and a lot of French Canada follows the French (France) model of a full 24 hour clock, while English Canada is heavily influenced by the US, except when it comes to time tables like train schedules.
David
+2  A: 

Honnestly, I think using AM/PM format is a bad practice, but that may be because I'm used to the 24 hours scale.

One reason against is that if all your users are used to the 12H scale, then most of them might still enter 1:00 instead of 13:00 for 1:00. Since the PM is not here, it will result in mistakes.

However, one good reason to do the switch is simply because it's the international standard.

Depending of what you want to put the emphasis (speed or functionality) you can use a time picker that would rely on regional setting to diplay the time in the user format or use a clock-like control. If speed is important, you might prefer a simple mask-textbox.

David Brunelle
"one good reason to do the switch is simply because it's the international standard"... so is the metric system and we all know how ready people are to adapt to that one.
Kenny Winker
I agree with you, but changes sometime are necessary too. The metric system ain't that bad, much, much easier to use :)
David Brunelle
I might even add, if the users are from different places with different standard, using the most popular one is usually a good idea.
David Brunelle
+3  A: 

It may not be a bad idea. Imagine the case where users must enter that bit of information lots of times, for example because they are in call support. Or they may find the dropdown boxes not usable enough, even after having tried them. They may prefer that other format.

It is usually a good idea to talk to the stakeholder and ask him: "Why do you want it this way?" you can then contrast their ideas with yours, but if yours are only that you have the "gut" feeling that this is not right, guess who will win the argument. The gut feeling is not a valid business argument - especially when the business is not yours.

So in short, do what your customer wants - just make sure that they understand their options well, and point out to them any inconvenience that they may have foreseen - once you find one, that is.

Daniel Daranas
A: 

You might want to consider using the jQuery timepicker (or Telerik DateTimePicker in Time-only mode for WinForms) and also build in support, on the backend, for multiple formats in the event that javascript is disabled.

tvanfosson
+1  A: 

In my own frames, I accept times and dates in a wide variety of formats. When the field loses focus, I'll try to parse the input and format it into the "correct" or "official" format. This gives the user a nice way to enter the data and a visual cue when something is wrong.

For example, in a date field, I'll accept "1" as "01.12.2009" (current month+year). In a time box, I'll accept "1030", "10 30", "10.30" (i.e. I just filter out anything which isn't a number). "010409 1125" becomes 1. April 2009, 11:25am.

Aaron Digulla
+3  A: 

Well, from a user interface standpoint, this could be a mistake simply according to some of Jakob Nielsen's user interface heuristics:

"Match between system and real world." If your users are not used to entering dates in military time, asking them to do so for your app can be distracting at best, and frustrating at worst.

"Error prevention" You are not eliminating error-prone conditions, but possibly introducing them.

There is also the question of why this change is being made. Are customers complaining? Is data coming in incorrectly? As mentioned by others, are your users used to military time? Any interface change should happen for a reason, IMO, because you're going to change the user experience and there will be ramifications for that; it's just a matter of how large those ramifications will be. My assumption is that data entry errors are supposedly going to be avoided -- but are they? Asking a user to enter a time as "XX:XX" and parsing out the semicolon (or, as Aaron Digulla stated, ANY non-number characters) and then converting it as needed seems less likely to result in errors than asking a user to enter a time in a format they are not used to using daily.

My concern would be that a user wants to enter 3:30 PM, and, while not paying much attention, simply enters 330. This is now 3:30 AM, and the user will never know the difference, because the app takes the information and happily assumes that this is what is meant. However, allowing the user to enter the time in "XX:XX" format and having an "AM/PM" selection makes much more sense.

As far as hard facts, well, I don't have them either. But if your boss/client won't be swayed by Nielsen's heuristics, I'm not sure what can change their mind.

Geo Ego
A: 

date/time input through select boxes is a horrible UI design.

but, if some of your users come from the few countries that stick to AM/PM for time format, then forcing the "military" format on them without assistance from the program is also bad. use something like the jQuery masked input plugin.

if i was doing this, i would use a masked text input and a "PM" checkbox: if the value is more than 1259, the checkbox is disabled. otherwise, it's clear by default.

just somebody
+2  A: 

Hmmm, describing the 24 hour clock as "military time" and then noting that the users are not military makes me a more than a little twitchy.

It will depend on your users but I think that it is more than reasonable to expect people in contemporary society to understand the 24 hour time format and to be able to enter times using that format (given that I would - possibly naively - expect that format to be in use for bus, train, plane and other timemtables almost universally for the simple reason that its unambiguous). Perhaps this is not true worldwide - but it is certainly true across Europe.

That said, changes need to be made for a reason - "if it ain't broke..." is a very sound maxim for a working site and whilst I wouldn't ever willingly use am/pm for time entry I don't have a problem with use of dropdowns for time entry - especially as one can type "into" them. In this case I think that going from drop downs to text boxes is most likely an opportunity to introduce errors (although again it rather depends on the users).

Murph
+1  A: 

Few outside the united states knows the words "military time". They also prefer 24-hour format.

If you want globalization, you can do one of the two:

  • use accepted and de-facto standards, such as ISO8601 date format, 24h time and speak English
  • dive into the nightmare of the vast regional-based localization complexity (some unfortunate programmers have to do it anyway. Then they support AM/PM, unicode and never-showing-yellow-color for certain cultures)
Pavel Radzivilovsky
what cultures don't like looking at yellow? I couldn't find anything like this under "yellow" in wikipedia.
Kenny Winker
I'm intrigued also. I've never heard any culture-specific anti-yellow sentiment. I tend to stay away from it because it's difficult to read on most backgrounds, but now I'm curious, unless this was just a facetious example.
Geo Ego
I brought it from a Microsoft's .net localization course I once visited. The exact statement was this: "in some cultures, yellow means love and prosperity, and in others it means vice versa, and you must know blablabla to localize properly". Last time when I tried to study mandarin Chinese, I was explained meanings of colors and why you should never bring a green gift to a friend or it would mean you are interested in an affair with his wife. This was about the moment I gave up.
Pavel Radzivilovsky
A: 

Why not use a TimePicker control of some sort?

You shouldn't force non-military users to user a strange to them time format.

ShaunLMason
+1  A: 

I cannot believe how much consideration this idea has gotten. Forcing your user to do things your way, because it's "more efficient" is a terrible idea.

Your forms should be both streamlined (power users can enter data quickly from the keypad) and comprehendible (first time users can navigate successfully). The conversion to 24 hour time will throw people immediately. I lived in Quebec for almost six years and still had troubles switching back and forth from 24hour time. DON'T DO THIS.

Kenny Winker
+1  A: 

Just in addition to all the rest of comments you should thing about one more thing.

Programmers and designers usually think the client pays us just for creating what he tells us to... That's only half true. They pay us, even if they don't realize it, for telling them what they need, what's best for them.

Of course, the final decision is always theirs, as the pay, but if you feel it is wrong and you think you know the business model better than them, then do not blindly accept whatever they told you to do.

Jorge Córdoba
+3  A: 

Oh my.

My advice is to quit and find a different project.

We did a scheduling app for a "military customer" - and even they could not agree on what constituted "military time". Half of them wanted something called "Zulu Time" - the other half wanted "GMT plus offset" - then some wanted local time in 24h format. Contrary to what our contract specified, a Colonel insisted we use "Zulu" - we made the change for political reasons (in violation of our contract) - and then HE missed showing up for a scheduled event, because he thought it was in local time. Then contract management came down on us like a ton of bricks.

(never mind that the published schedule also used an obsolete "offset" that was a cold-war holdover meant to "fool the Russians").

In that this is just me sharing a war-story. . .

The real answer is to Elicit Requirements from your customer. Get those requirements SPECIFICALLY written into your contract. Make sure that the stakeholder who is actually writing your check, agrees. Develop to that specification exactly. When someone complains tell them to pay for a contract mod. You'll probably be changing this back and forth among many different settings for the next 10 years. You'll have steady work, and you'll understand why military contracts frequently go way over budget and are never on schedule.

NDP
+1 for the lolific war story.
just somebody
A: 

In any case, assuming that all input is by logged-in users, you can provide multiple mechanisms (and certainly multiple ways if displaying time) and make the choice a user preference. But I'd strongly recommend that whatever you do, for any given user times should be entered and displayed in a consistent manner.

Joe Mabel