大家好|只是检查我是否做错了什么。下面的代码给出的时间 = 24:59,布拉格 (GMT+1)。使用 Chrome。
new Intl.DateTimeFormat(
'en',
{
weekday: 'long',
month: 'long',
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
hour12: false
}
).format(new Date('2020-03-11T23:59:00Z')
)
// "Thursday, March 12, 24:59"
当使用 .getHours() 时,我会得到正确的值 0。
new Date('2020-03-11T23:59:00Z'); // Thu Mar 12 2020 00:59:00 GMT+0100 (Central European Standard Time)
new Date('2020-03-11T23:59:00Z').getHours(); // 0
感谢您的建议,我没有发现任何与此相关的问题。
托马斯
最佳答案
您的代码在 Firefox 中为我提供了 “Thursday, March 12, 00:59”
,在 Chrome 中为我提供了 “Thursday, March 12, 24:59”
(80.0.3987.149 )
Chrome 80 似乎存在一个错误 https://support.google.com/chrome/thread/29828561?hl=en ,自二月份开始开放,但关于是否会修复以及如何修复并没有太多说明。考虑投票。
根据那里发布的评论,您可以通过将 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"
这似乎对我有用
关于javascript - Intl.DateTimeFormat 显示时间为 24 :59,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60886186/