1

我有一些行为怪异的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 EDT

EndMinute59EndHour23EndDay3EndMonth10EndYear2013

2013 年 11 月 3 日星期日 23:59:00 EST

4

1 回答 1

3

这不是 JavaScript 问题,它与时区有关。摘自这篇维基百科文章:

在 11 月的第一个星期日,美国东部时间凌晨 2:00,时钟被移回美国东部标准时间凌晨 1:00,因此“重复”了一个小时。

巧合的是,您的日期是 2013 年 11 月的第一个星期日。xstartTime是 00:00 EDT,但由于xendTime是在凌晨 1:00 之后,所以它的时区是 EST。

于 2013-10-17T20:23:16.897 回答