javascript - Safari 中的日期显示为使用 Intl.DateTimeFormat 和 en-US 语言环境

标签 javascript date safari datetime-format dst

看起来 Safari 的 Int.DateTimeFormat 实现假设三月的第二个星期日将始终是 DST 时间截止,这是不正确的,因为在 2007 年之前它是四月的第一个星期日。当 DST 结束时,这似乎也会影响另一端。 PS:这段代码在美国东部时区(GMT-4)的印第安纳州运行

更具体地说...

  • 2007 年及以后:所有日期均正确。
  • 2006 年:3 月的第二个星期日和 4 月的第一个星期日之间以及 10 月的最后一个星期日和 11 月的第一个星期日之间的日期不正确。
  • 2005 年及以后:对于 3 月的第二个星期日和 11 月的第一个星期日之间的所有日期都不正确。

这是一个小的 JSBin,它概述了这成为一个问题的确切日期(注意它在每个浏览器上都可以正常工作,除了 safari) https://jsbin.com/mayadehowu/edit?js,output

var formatter = new Intl.DateTimeFormat('en');
var date = new Date('6/2/2005');
console.log(formatter.format(date)); // => outputs "6/1/2005"

我进一步挖掘,这可能是由于 ECMA 规范中的这一变化。

有没有人遇到过这个问题?如果是这样,您的解决方案是什么?我需要修复,但我怀疑通过在特定情况下增加一个小时来修补特定于 Safari 的错误,因为如果 Safari 修复了这个问题,那么我们的逻辑将再次被破坏。

最佳答案

这最终在 Safari 14.1 中得到修复根据@NathanQ 的评论

关于javascript - Safari 中的日期显示为使用 Intl.DateTimeFormat 和 en-US 语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56242641/

相关文章:

javascript - 从浏览器访问 ArangoDB 数据

javascript - Socket.io 和 Node.js 无法在 Heroku 上运行

c# - JArray 阻止日期解析

html - 谷歌浏览器不理解 top :50% unlike other browsers

javascript - Safari 的网站问题

javascript - 使用像 SystemJS 这样的模块加载器时,在 Safari 的 Web Inspector 中进行调试

javascript - 如何在表单中发布 Quill 编辑器的内容?

javascript - 请问浏览器 "cache"javascript代码?

mongodb - 如何比较 ReactiveMongo BSON 查询中的日期?

javascript - 函数中的 2 个变量获得相同的日期值