2 回答

TA贡献1829条经验 获得超7个赞
您的代码"Thursday, March 12, 00:59"在 Firefox 和"Thursday, March 12, 24:59"Chrome (80.0.3987.149) 中提供给我
Chrome 80 https://support.google.com/chrome/thread/29828561?hl=en似乎存在一个错误,自 2 月起开放,但关于是否修复以及如何修复的说法不多。考虑支持它。
根据那里发布的评论,您可以通过将hour12属性替换为hourCycle: 'h23'.
new Intl.DateTimeFormat(
'en',
{
weekday: 'long',
month: 'long',
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
hourCycle: 'h23'
}
).format(new Date('2020-03-11T23:59:00Z')
)
// "Thursday, March 12, 00:59"
这似乎对我有用

TA贡献1797条经验 获得超6个赞
问题似乎是 HourCycle 和 langauge 的默认设置en,这是您所期望的h23,但 Chrome 正在使用h24. 您可以按照toniedzwiedz 的描述修复它,或者您可以为语言标签提供合适的国家/地区代码以强制 HourCycle 默认为h23,例如 GB:
let d = new Date(2020,2,1,0,23);
let opts = { hour12: false, hour: 'numeric' };
console.log(d.toLocaleString('en', opts)); // 24 (Chrome), 00 others
console.log(d.toLocaleString('en-GB', opts)); // 00 all
添加回答
举报