代码之家  ›  专栏  ›  技术社区  ›  Jason

为什么我不要求我的用户使用军用格式输入时间?

  •  5
  • Jason  · 技术社区  · 14 年前

    我有一个表单,要求用户输入事件的开始和结束时间。多年来,我们允许他们通过从三个下拉框中选择小时(1-12)、分钟(1-60)和AM/PM来输入时间。这样做效果很好,没有客户投诉。然而,今天我收到一个请求,请求将输入更改为一个文本框,以便用户在军事时间中输入时间(即0000-2359)。在我的直觉里,我认为这是一个坏主意,但我很难想出任何确凿的事实。

    我能给出的最好的理由是什么,这将是一个坏主意?

    如果有一个更好的进入时间的解决方案,它会是什么?

    另外,仅供参考,填写表单的用户运行的范围从很少的计算机技能到高级用户。他们与军事毫无关系。

    更新:我的所有用户都是本地用户,没有其他表单(Web或打印)使用军事时间作为标准。

    16 回复  |  直到 10 年前
        1
  •  4
  •   Geo Ego    14 年前

    从用户界面的角度来看, 能够 简单地说就是一个错误 Jakob Nielsen's user interface heuristics :

    “在系统和现实世界之间进行匹配。”如果你的用户不习惯在军事时间输入日期,那么让他们为你的应用程序输入日期最好是让人分心,最坏是让人沮丧。

    “错误预防”不是消除容易出错的条件,而是可能引入它们。

    还有一个问题就是为什么要做出这种改变。客户在抱怨吗?数据输入是否错误?正如其他人提到的,您的用户习惯于军事时间吗?任何界面的改变都是有原因的,IMO,因为你将要改变用户体验,这将带来后果;这只是这些后果有多大的问题。我的假设是数据输入错误应该是可以避免的——但它们是吗?要求用户输入一个“xx:xx”的时间,并解析分号(或者,如Aaron Digulla所述,任何非数字字符),然后根据需要进行转换,与要求用户输入一个不习惯于每天使用的时间格式相比,似乎不太可能导致错误。

    我担心的是用户希望输入3:30 颗粒物 ,而且,虽然不太注意,但只需输入330。现在是3:30 调幅 用户永远不会知道这两者的区别,因为应用程序会获取信息,并很高兴地假设这就是它的意思。但是,允许用户以“xx:xx”格式输入时间,并选择“am/pm”更有意义。

    至于确凿的事实,我也没有。但如果你的老板/客户不会被尼尔森的试探法所左右,我不确定什么能改变他们的想法。

        2
  •  16
  •   Anton Gogolev    14 年前

    三个下拉列表对于可用性来说是一个噩梦。您可以通过消除AM/PM并将其转换为24小时格式,将其减少到两个,但仍然是:一个包含60个项目的下拉列表是多余的。

    如果这些输入框足够智能(例如,它们应该能够转换为 18 1800 , 0 0000 ,允许 : 作为分隔符等)。另外,首先不允许用户输入不正确的数据。

    回答你的问题:我认为没有理由不允许你的用户做他们想做的事情。毕竟, 他们 是用户。

        3
  •  4
  •   NDP    14 年前

    哦,我的。

    我的建议是辞职,找一个不同的项目。

    我们为一个“军事客户”开发了一个日程安排应用程序,甚至他们也无法就什么是“军事时间”达成一致。其中一半人想要“祖鲁时间”,另一半人想要“格林尼治标准时间加上时差”,还有一些人想要24小时制的当地时间。与我们的合同规定的相反,一位上校坚持要我们使用“祖鲁”——我们出于政治原因(违反了我们的合同)做出了改变——然后他错过了一个预定的活动,因为他认为是在当地时间。然后合同管理像一吨砖一样落到我们头上。

    (别介意公布的时间表也使用了过时的“抵消”,这是冷战时期的拖延,意在“愚弄俄罗斯人”)。

    因为这只是我在分享一个战争故事。…

    真正的答案是从客户那里引出需求。把这些要求具体写进你的合同里。确保写支票的利益相关者同意。严格按照该规范进行开发。当有人抱怨时,告诉他们支付合同修改费。在接下来的10年中,您可能会在许多不同的设置中来回更改此设置。你会有稳定的工作,你会明白为什么军事合同经常超出预算,而且从来没有按时完成。

        4
  •  3
  •   Reynolds    14 年前

    “他们与军事毫无关系。”

    这对我来说是一个很好的理由。这是一种不常见的格式,虽然不完全是“用户敌意”,但我们大多数人并不习惯于看到日期,要求您的用户在头脑中进行转换最终会导致算术错误。

    也就是说,下拉框也不太好。在我看来,最好使用两个输入框和一个AM/PM下拉列表。

        5
  •  3
  •   Daniel Daranas    14 年前

    这可能不是个坏主意。想象一下这样的情况,用户必须多次输入这一点信息,例如,因为他们在呼叫支持中。或者他们可能会发现下拉框不够用,即使在尝试过之后。他们可能更喜欢其他格式。

    通常是个好主意 谈话 问利益相关者:“你为什么要这样做?”然后你可以将他们的想法与你的想法进行对比,但是如果你的想法只是你有一种“直觉”的感觉,认为这是不对的,那么猜猜谁会赢得这场争论。直觉不是一个有效的商业论据-尤其是当企业不是你的时候。

    因此,简而言之,做你的客户想要做的-只要确保他们很好地理解他们的选择,并向他们指出他们可能预见到的任何不便-一旦你找到了一个,那就是。

        6
  •  2
  •   David Brunelle    14 年前

    诚然,我认为使用AM/PM格式是一种糟糕的做法,但这可能是因为我习惯了24小时制。

    反对的一个原因是,如果您的所有用户都习惯于12小时制,那么大多数用户可能仍然会输入1:00而不是1:00的13:00。因为首相不在这里,这会导致错误。

    然而,做这种转换的一个好理由仅仅是因为它是国际标准。

    根据您想要强调的内容(速度或功能),您可以使用时间选择器,该时间选择器将依赖于区域设置,以用户格式或使用类似时钟的控件来重复显示时间。如果速度很重要,您可能更喜欢简单的蒙版文本框。

        7
  •  2
  •   Murph    14 年前

    嗯,把24小时时钟描述为“军用时间”,然后注意到用户不是军用的,这让我有点紧张。

    这将取决于您的用户,但我认为,期望当代社会的人们理解24小时制的时间格式,并能够使用这种格式输入时间,这是非常合理的(考虑到我可能天真地希望这种格式在公共汽车、火车、飞机和其他时间表中使用,几乎是普遍的,为了简化原因很清楚)。也许这在全世界都不是真的,但在整个欧洲都是真的。

    也就是说,需要做出改变的原因是:“如果它没有坏……”对于一个工作场所来说,这是一个非常合理的格言,虽然我永远不会愿意将AM/PM用于时间输入,但我对时间输入使用下拉列表没有问题,尤其是作为一个下拉列表。 可以 输入“into”。在这种情况下,我认为从下拉列表切换到文本框最有可能是引入错误的机会(尽管这同样取决于用户)。

        8
  •  1
  •   Rippo    14 年前

    我明白你为什么认为这是一个坏主意,愚蠢的用户输入错误的格式等。

    但是,您是否考虑过jquery Masked input box ?

        9
  •  1
  •   Aaron Digulla    14 年前

    在我自己的框架中,我接受各种格式的时间和日期。当字段失去焦点时,我将尝试解析输入并将其格式化为“正确”或“正式”格式。这为用户提供了一种输入数据的好方法,并在出现问题时提供了一个可视提示。

    例如,在日期字段中,我将接受“1”作为“01.12.2009”(当前月份+年份)。在时间框中,我将接受“1030”、“10 30”、“10.30”(即,我只过滤掉任何不是数字的内容)。010409 1125“变为1。2009年4月,上午11:25。

        10
  •  1
  •   Pavel Radzivilovsky    14 年前

    美国以外很少有人知道“军事时代”这个词。他们也喜欢24小时制。

    如果你想要全球化,你可以选择其中之一:

    • 使用公认和事实上的标准,如ISO8601日期格式、24小时时间和英语口语。
    • 陷入基于区域的巨大本地化复杂性的噩梦中(一些不幸的程序员无论如何都必须这样做)。然后它们支持AM/PM、Unicode,在某些文化中从不显示黄色)
        11
  •  1
  •   Kenny Winker    14 年前

    我不敢相信这个想法得到了多少考虑。 强迫你的用户按你的方式做事,因为“更有效”是一个糟糕的主意。

    您的表单应该是流线型的(超级用户可以从键盘快速输入数据)和可理解的(第一次用户可以成功导航)。转换到24小时的时间将立即扔人。我在魁北克住了将近六年,在24小时的时间里来回转换仍然有困难。不要这样做。

        12
  •  1
  •   Jorge Córdoba    14 年前

    除了所有其他评论之外,你还应该多做一件事。

    程序员和设计师通常认为客户只为我们创造他告诉我们的东西而付钱…那只不过是半真半假。他们付钱给我们,即使他们没有意识到,因为他们告诉他们他们需要什么,什么对他们最好。

    当然,最终的决定总是他们的,作为报酬,但如果你觉得这是错误的,你认为你比他们更了解商业模式,那么不要盲目地接受他们告诉你要做的事情。

        13
  •  0
  •   tvanfosson    14 年前

    您可能需要考虑使用jquery timepicker (或TeleRik) DateTimePicker 在WinForms的纯时间模式下),以及在后端为禁用javascript的多种格式提供内置支持。

        14
  •  0
  •   just somebody    14 年前

    通过选择框输入日期/时间是一种糟糕的用户界面设计。

    但是,如果您的一些用户来自少数几个坚持AM/PM时间格式的国家,那么在没有程序帮助的情况下强制使用“军事”格式也很糟糕。 使用类似 jQuery masked input plugin .

    如果我这样做,我将使用一个屏蔽文本输入和一个“pm”复选框:如果值大于1259,该复选框将被禁用。否则,默认情况下是明确的。

        15
  •  0
  •   Shaun Mason    14 年前

    为什么不使用某种类型的时间选择器控件?

    你不应该强迫非军事用户使用一种奇怪的时间格式。

        16
  •  0
  •   Joe Mabel    14 年前

    在任何情况下,假设所有输入都是由登录的用户提供的,您可以提供多种机制(当然还有多种方法,如果 显示 时间),并将选择作为用户首选项。但我强烈建议,无论您做什么,对于任何给定的用户时间,都应该以一致的方式输入和显示。

    推荐文章