将字符串转换为日期时的Javascript Date()函数和GMT偏移量

zsz*_*zep 2 javascript

Date在javascript 中将字符串转换为对象时,我注意到了一种奇特的行为.这样做时:

var date1 = new Date("2014-09-28T00:00:00");
console.log(date1);
Run Code Online (Sandbox Code Playgroud)

结果是:

Sun Sep 28 2014 02:00:00 GMT+0200 (Srednja Europa - ljet. vrij.) 
Run Code Online (Sandbox Code Playgroud)

与另一个日期相同的代码.

var date2 = new Date("2014-10-28T00:00:00");
console.log(date2);
Run Code Online (Sandbox Code Playgroud)

给出了这个结果:

Tue Oct 28 2014 01:00:00 GMT+0100 (Srednja Europa - st. vrij.) 
Run Code Online (Sandbox Code Playgroud)

请注意,第一个变量中的GMT偏移量为2小时,而第二个变量中的GMT偏移量仅为1小时.第一个考虑夏季时间计算,第二个不考虑.任何人都能解释一下吗?不得不提的是,我来自克罗地亚,目前的GMT抵消额加上两个小时,夏季开始.

Mur*_*nik 6

根据timeanddate.com,克罗地亚的夏令时(DST)将于2014年10月26日结束.因此,第一个日期(9月28日)包括它(GMT + 2),第二个日期(10月28日)不包括(GMT + 1).