Javascript Intl.DateTimeFormat hours12 在 Chrome 上给出奇怪的输出

标签 javascript datetime

我在 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/

相关文章:

javascript - 是否可以在 SVG 中进行下标?

python - 访问 pandas 数据列中的 total_seconds()

javascript - 在 Polymer 元素中使用 JavaScript

javascript - Vuetify - 当用户完成选择 v-autocomplete 中的项目并进行多项选择时调用方法?

java - CentOs Tomcat MySQL 时区

c# - DateTime.TryParseExact 似乎无法使用 "tt"匹配 AM/PM

java - 将一个日期字段分配给另一日期字段

php - 从 mysql 数据库回显日期时间

javascript - 强制函数仅接受特定结构的对象(在 typescript/js 中)

javascript - 将所有 `*` 重定向到 nextjs 中的特定路径