javascript - Intl.DateTimeFormat 显示时间为 24 :59

标签 javascript date

大家好|只是检查我是否做错了什么。下面的代码给出的时间 = 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/

相关文章:

javascript - 增加 IE 中的 jquery 滚动频率

javascript - 使用 jQuery 将动态 href 和目标附加到 anchor

javascript - 使用 Tether Javascript 库导致异常

javascript - jQuery 删除两次函数调用

excel - 在excel中更改日期

php - 在 PHP/MySQL 中获取日期之间的结果

javascript - 新日期无法解析 "31"但不是 "32"

javascript - css 中的 if 或 case 语句

mysql - 选择带有日期的两列之间的记录并忽略日期列中的年份

java - 将月份名称转换为日期范围