【发布时间】:2016-01-10 02:21:21
【问题描述】:
我电脑上的时区是 UTC+3。我有以下 JavaScript 代码:
// date in UTC time zone
var date = new Date('2015-10-09T20:00:00.000Z');
var options = {year: "numeric", month: "2-digit", day: "2-digit"};
var output = date.toLocaleString('en-us', options);
在 IE 和 Chrome 中,此代码输出 10/09/2015(即 2015 年 10 月 9 日),这是正确的,因为 20:00 UTC 是我的时间 23:00(现在仍然是 10 月 9 日)。
但是,在 Firefox 中,输出为 10/10/2015(即 2015 年 10 月 10 日) - 这就是问题所在。
如果我将初始日期/时间字符串更改为 2015-10-09T19:59:00.000Z(与初始值相比提前一分钟),Firefox 会给出正确的日期(2015 年 10 月 9 日)。
为什么 Firefox 中的 toLocaleString() 方法会这样?
所有浏览器都安装在同一台计算机上。 Date.getTimezoneOffset() 在所有浏览器中返回 -180。
【问题讨论】:
标签: javascript firefox internationalization timezone