gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 07:23:05 42 4
gpt4 key购买 nike

看起来 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/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com