javascript timezone很奇怪:new Date()在不同的时区创建日期

时间:2013-10-17 20:08:41

标签: javascript date

我有一些表现得很奇怪的javascript。我创建了两个日期,但是它们随机出现在不同的时区,这在计算两者之间的差异时会搞砸我。我在EST时区,但由于某种原因,第一个日期被创建为EDT日期。

基本上我的问题是 为什么这个javascript会产生它的输出

var xstartTime = new Date(startYear, StartMonth, StartDay, StartHour, StartMinute, 0, 0);
var xendTime = new Date(EndYear, EndMonth, EndDay, EndHour, EndMinute, 0, 0);
console.log("StartMinute" + StartMinute + "StartHour" + StartHour + "StartDay" + StartDay + "StartMonth" + StartMonth + "startYear" + startYear);
console.log(xstartTime);
console.log("EndMinute" + EndMinute + "EndHour" + EndHour + "EndDay" + EndDay + "EndMonth" + EndMonth + "EndYear" + EndYear);
console.log(xendTime);

StartMinute0StartHour0StartDay3StartMonth10startYear2013

2013年11月3日星期三00:00:00

EndMinute59EndHour23EndDay3EndMonth10EndYear2013

Sun Nov 3 23:59:00 EST 2013

1 个答案:

答案 0 :(得分:3)

这不是JavaScript问题,而是与时区有关。取自this维基百科文章:

  

在11月的第一个星期日,美国东部时间凌晨2点,时钟是   回到美国东部时间凌晨1点,“重复”一小时。

您的约会对象是2013年11月的第一个星期日。xstartTime是美国东部时间00:00,但由于xendTime是凌晨1点以后,其时区是美国东部时间。