html5时间输入显示12小时

Om3*_*3ga 68 html html5

我正在使用html 5输入元素type=time.问题是它显示时间,12 hours但我希望它在24 hours一天中显示它.我怎样才能达到24小时?这是我的输入字段

<input type="time" name="time" placeholder="hrs:mins" pattern="^([0-1]?[0-9]|2[0-4]):([0-5][0-9])(:[0-5][0-9])?$" class="inputs time" required>
Run Code Online (Sandbox Code Playgroud)

DEMO

这是jsfiddle

Pra*_*man 65

HTML5时间输入

这是最简单的日期/时间相关类型,允许用户选择24小时制,无AM或PM的时间.返回的值是小时:分钟,看起来像14:30.

<input type="time" name="time" />
Run Code Online (Sandbox Code Playgroud)

此功能仍在草稿中.每个浏览器以不同方式显示

- Opera(Presto Engine)以正确的方式显示它.
- Chrome(Webkit Engine)在上午/下午显示它.
- Firefox(Gecko Engine)没有显示任何内容,但验证结果.
- Edge在弹出窗口类型窗口中显示所有必需值

<input type="time" name="time" />
Run Code Online (Sandbox Code Playgroud)

使用不是一个好主意!

  • 令我感到困惑的是,浏览器仍然无法在2016年正确实现此组件 (21认同)
  • 它不像你在最新版本的chrome中说的那样工作.[的jsfiddle](http://jsfiddle.net/Yp3b3/) (20认同)
  • 令我困惑的是,浏览器在 **2021** 仍然无法正确实现该组件。 (9认同)
  • 令我困惑的是,浏览器在 **2023** 中仍然无法正确实现该组件,@Avatar (4认同)
  • @PraveenKumar:2016年7月,仍然没有Firefox或Internet Explorer的支持. (3认同)
  • @recursive他们甚至是浏览器吗? (3认同)
  • 令人惊讶的是,经过所有这些时间和无数编译器能够转换javascript等等,我们仍在处理这样一个糟糕的浏览器情况.Infathomable.在Safari中尝试一下.除非您确定所有用户都在同一浏览器上,否则您无法使用它. (3认同)
  • Firefox 在 2021 年仍然无法正确实现这一点,chrome 还好 (2认同)
  • @Catto OMG,他们还没有实施吗?现在是 2021 年了! (2认同)

Juk*_*ela 24

通过HTML5草稿,input type=time创建一个时间输入控件,预计将使用"用户首选的演示文稿"实现.但这实际上意味着使用一个小部件,其中时间表示遵循浏览器的语言环境规则.因此,独立于周围内容的语言,演示文稿因浏览器的语言,底层操作系统的语言或系统范围的区域设置(取决于浏览器)而异.例如,使用芬兰语版本的Chrome,我将小部件视为使用标准的24小时制.你的里程会有所不同.

因此,input type=time基于本地化的想法,将所有这些都从页面作者手中夺走.这是故意的; 在HTML5讨论中已经多次提出这个问题,结果相同:没有变化.(除非可能添加对文本的说明,否则将此行为描述为预期.)

请注意,不允许使用patternplaceholder属性input type=time.而且placeholder="hrs:mins",如果实施,可能会产生误导.当浏览器区域设置使用"."作为时间分隔符时,用户很可能必须键入12.30(带有句点)而不是12:30.

我的结论是,你应该使用input type=text,与pattern属性,并与一些JavaScript,检查在不支持的浏览器是否正确输入pattern属性本身.

  • 由于某种原因,我的 Firefox 浏览器以 12 小时格式显示时间,而 Windows 设置为使用 24 小时格式。我找不到更改为 24 小时格式的选项。--- 非常奇怪的决定,不允许页面创建者设置时间格式,只要他们知道他们的页面是为哪个区域创建的。 (3认同)

小智 9

它取决于您当地的系统时间设置,24小时后会显示24小时.

  • 我无法证实这一点.运行Windows 10,在通知区域中显示24小时内的时间,但我仍然在输入类型="时间"上获得AM/PM选择器.在Chrome和Edge中测试过. (12认同)
  • 这取决于浏览器的语言环境,而不是系统。 (2认同)

jth*_*ter 7

它取决于启动Web浏览器时用户操作系统的时间格式.

所以:

  • 如果计算机的系统首选项设置为使用24小时制,则浏览器将<input type="time">元素呈现为--:--(时间范围:00:00-23:59).
  • 如果将计算机的系统首选项更改为使用12小时,则在退出并重新启动浏览器之前,输出不会更改.然后它将改为--:-- --(时间范围:上午12:00 - 下午11:59).

而且(截至本文撰写时),浏览器支持率仅为75%左右(caniuse).Yay:Edge,Chrome,Opera,Android.Boo:IE,Firefox,Safari).

  • 我不是这样,我的电脑工作在24小时格式,但我的chrome工作与pm/am格式 (7认同)
  • 同样的情况:在 Linux 上,我的桌面配置为 24 小时时间格式,但 Chrome 坚持显示 AM/PM。超级烦人,因为在瑞典没有人使用 AM/PM。 (2认同)

Jon*_*ker 5

如果您能够/愿意使用一个小组件,我编写了这个 Timepicker - https://github.com/jonataswalker/timepicker.js - 以满足我自己的需要。

用法是这样的:

var timepicker = new TimePicker('time', {
  lang: 'en',
  theme: 'dark'
});

var input = document.getElementById('time');

timepicker.on('change', function(evt) {
  
  var value = (evt.hour || '00') + ':' + (evt.minute || '00');
  evt.element.value = value;

});
Run Code Online (Sandbox Code Playgroud)
body {
  font: 1.2em/1.3 sans-serif;
  color: #222;
  font-weight: 400;
  padding: 5px;
  margin: 0;
  background: linear-gradient(#efefef, #999) fixed;
}
input {
  padding: 5px 0;
  font-size: 1.5em;
  font-family: inherit;
  width: 100px;
}
Run Code Online (Sandbox Code Playgroud)
<script src="http://cdn.jsdelivr.net/timepicker.js/latest/timepicker.min.js"></script>
<link href="http://cdn.jsdelivr.net/timepicker.js/latest/timepicker.min.css" rel="stylesheet"/>

<div>
  <input type="text" id="time" placeholder="Time">
</div>
Run Code Online (Sandbox Code Playgroud)