2016-07-13 22 views
0

请原谅我的无知,但也许有人可能会向我解释为什么当milliseconds小于1e10时,JavaScript的Date(milliseconds)返回不同的时区?为什么JavaScript Date(毫秒)根据参数的值给出不同的时区?

这里是我所看到的一个小例子:从

的JavaScript

console.log(new Date(1e3).toString()); 
console.log(new Date(1e10).toString()); 
console.log(new Date().toString()); 

控制台输出

Thu Jan 01 1970 01:00:01 GMT+0100 (W. Europe Daylight Time) 
Sun Apr 26 1970 19:46:40 GMT+0200 (W. Europe Standard Time) 
Wed Jul 13 2016 09:06:50 GMT+0200 (W. Europe Standard Time) 

注意第一个输出具有不同的时区(GMT + 0100)最后两个(GMT + 0200)...

有可能是一个很好的解释为此,但我没有看到它。

谢谢你的帮助。

亲切的问候, 丹尼斯

回答

0

什么你看到的是不是一个时区的变化,但夏令时(DST)应用于给定的时区。

引用的Date.prototype.getTimezoneOffset() MDN的文档:

的时区偏移量的区别,以分钟为单位,UTC与本地时间之间。 (...) 即使对于给定的语言环境,夏时制也可以防止该值成为常量。

+0

感谢您的快速响应。我想用Date的UTC方法会为我的应用程序处理这个问题。 – Dennis

+0

@丹尼斯确实。 DST从未应用于UTC。 – Arnauld

相关问题