new Date()在Firefox和Chome下不同效果
Differrent behavior of new Date between Firefox and Chrome
我最近的一个项目需要画图表,使用的JS库是D3js。我遇到一个很神奇的问题,就是在Chrome上能显示出来的点和线,在Firefox下面显示不出来。
初步察看原因,发现是点坐标的计算结果不一样。我们的X轴是时间轴,同样的日期在Chrome下计算的X坐标是正常的坐标,而在Firefox下计算出来的坐标是负值,导致无法在graph上显示出来。
后来仔细察看,发现是new Date()
在两个浏览器下的返回值不一样。
Firefox 37.0.1
new Date("03/23/15, 03:35 AM")
=> Date {Tue Mar 23 1915 03:35:00 GMT+0800 (CST)}
Chrome 41.0.2272.118 (64-bit)
js
new Date("03/23/15, 03:35 AM")
=> Mon Mar 23 2015 03:35:00 GMT+0800 (CST)
比较之后,我们得出这个结论,如果使用两位数的年份传给 new Date()
,比如 15
,Firefox会当作 1915
年计算,而Chrome会按照 2015
年计算。而如果是 88
,Firefox和Chome都会当作1988年计算。