我创建了一个输入时间 HTML 元素,其中包含以下行:
<input type="time" id="startTime" value="@DateTime.Now.ToString("HH:mm")" />
我正在使用 C# Razor
语法,但这并不重要。
我在 Google Chrome 和 Mozilla
Firefox 中检查了它,这两种时间都以 24 小时格式表示。后来,当我与同事分享代码时,在他们的 Chrome
版本中,时间以 12 小时格式表示,包括 AM 和 PM。有没有办法在我的 HTML
代码中指定时间应该在所有浏览器中以一种方式表示。
有类似问题here ,但是三年前有人问过这个问题,接受的答案开头是:
This feature is still in draft. Each browser shows it differently.
所以我想知道这个问题是否同时得到解决。如果没有,欢迎提供任何有关美好时光组件的建议。我想到的最简单的方法是使用单独的选择标签,但我更喜欢使用包含小时和分钟的单个组件。
编辑: 我意识到问题在于运行浏览器的计算机的本地设置,在更改同事笔记本电脑上的设置后,它工作正常。我想知道是否有一种方法可以强制所有浏览器以相同的格式显示时间,无论机器的设置如何。我在多个地方使用这些字段,因此我最好坚持使用它们,而不是使用不同的 HTML 组件(因为我不想在代码中进行太多更改)。我注意到的另一个问题是输入时间字段不像 Mozilla 中的下拉列表(而在 Chrome 中它是下拉列表)。
现在的问题是:如何使用输入时间字段
并强制它们在所有浏览器中以相同的格式显示时间,无论它们运行的计算机的时间设置如何上。
谢谢!
最佳答案
与浏览器无关,与系统设置有关。
input type="time"
根据系统上定义的区域设置显示时间。
这同样适用于日期。
How can I use input time fields and force them to show time in same format in all browsers, no matter on the time settings
有很多不同的解决方案。最常用的是input type="text"
。还有一些 JQuery 插件可以处理这个问题。广泛使用的 js 库是 moment.js
关于javascript - 在不同的浏览器中输入时间字段以不同的格式显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31829783/