Hegwin.Me

南朝四百八十寺,多少楼台烟雨中。

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年计算。

< Back