【问题标题】:Date differences between Chrome & FirefoxChrome 和 Firefox 之间的日期差异
【发布时间】:2019-04-12 17:56:21
【问题描述】:

我发现 Firefox 和 Chrome 使用相同的代码有一个奇怪的区别:

var d = new Date('2019', '4', '4');

在 Chrome 中,我得到了预期的结果:2019 年 5 月 4 日

在 Firefox 中,我得到以下结果:2019-05-03

为什么 Firefox 会推出 1 天?

以下是两种浏览器中控制台的一些屏幕截图:

铬:

火狐:

【问题讨论】:

  • 它的时区相关,chrome看起来使用UTC,而firefox使用本地时间

标签: javascript google-chrome date firefox


【解决方案1】:

这些是相同的日期/时间。不同之处在于第一个在 BST(英国夏令时,GMT+0100)显示给您,而第二个在 GMT 显示给您(最后的Z 告诉您)。

Date 构造函数以当地时间构造日期,对您而言,这显然是当前 BST(对我来说也是 :-))。由于您没有指定时间,因此默认为午夜。 Firefox 只是在格林威治标准时间向您显示,比英国夏令时午夜早一个小时,因此是前一天。


旁注:您提供给new Date 的参数应该是数字,而不是字符串。尽管the date constructor 会为您强制执行,但最好不要依赖它。

【讨论】:

  • 评论不用于扩展讨论;这个对话是moved to chat
  • 非常感谢您的帮助 - 您提到 Date 应该接受数字而不是字符串帮助我消除了一个不同的错误,同时使此代码更好,所以谢谢。