我在 Chrome 上看到行为,其中将 hours12 设置为 true 的 12:00 pm 时间的返回值显示为 0 pm。不应该是12吗?如果不是,显示 12 小时制的正确方法是什么?请注意,我仅限于使用 ES5。
Chrome 中的以下内容在下午 0 点打印:
var foo = new Date(2020, 0, 1, 12, 0, 0)
var bar = new Intl.DateTimeFormat("en-GB", {hour12: true, hour: "numeric"}).format(foo)
console.log(bar)
请注意,bar 的值为“0 pm”。除 en-GB 之外的其他语言也表现出这种行为。但是,使用 en-US 运行的相同代码给了我“12 PM”。难道英国人和其他人居然用‘0 pm’来表示中午?这是 Chrome 中的错误吗?它不会发生在 FF 或 IE 中。
提前感谢您的任何意见。
最佳答案
不确定您是否还在寻找解决方案...我也遇到了同样的问题,但发现使用 hourCycle: 'h12'
代替 hour12: true
工作
关于Javascript Intl.DateTimeFormat hours12 在 Chrome 上给出奇怪的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63273543/