Javascript D3以小时为单位的日期范围;每7天重复一天

Javascript D3以小时为单位的日期范围;每7天重复一天,javascript,d3.js,date-range,repeat,days,Javascript,D3.js,Date Range,Repeat,Days,因此,我正在进行一项可视化工作,计算一年中每天每小时特定位置的太阳角度和距离。这些计算占用了大约550行代码,所以我将省略这些代码。我正在使用D3库获取时间范围以及日期范围的相对日、月和年。为了获得范围,我使用了这行代码 var hourRange = d3.time.hours(new Date(2013, 1, 1), new Date(2013, 12, 31)); 计算完成后,我非常兴奋。拥有8736个包含9个值的对象 hourRange[i] = [hour, day, month,

因此,我正在进行一项可视化工作,计算一年中每天每小时特定位置的太阳角度和距离。这些计算占用了大约550行代码,所以我将省略这些代码。我正在使用D3库获取时间范围以及日期范围的相对日、月和年。为了获得范围,我使用了这行代码

var hourRange = d3.time.hours(new Date(2013, 1, 1), new Date(2013, 12, 31));
计算完成后,我非常兴奋。拥有8736个包含9个值的对象

hourRange[i] = [hour, day, month, year, solar azimuth angle, solar elevation angle, EOT, solar declination angle, cosine of solar zenith angle]
。。。最后开始可视化过程,我发现日值从0-6变为0-6,但直到月底不再增加,而是继续重复0-6直到月底,并再次开始0-6值循环。考虑到这可能是计算中的问题,我尝试直接打印小时范围的日值,发现同样的问题发生了。读取D3库的时间间隔API参考,这似乎是一个异常错误

有人知道为什么会发生这种情况吗?有没有什么解决方案可以在每周都不重复日值的情况下获得小时范围及其相对日期?对此有任何见解都将不胜感激

编辑:要清楚。在控制台中键入hourRange[500]时,返回:

但是,当我在控制台中键入hourRange[500].getDay时,它返回:


当它显然应该是22时。

D3.time.getDay返回一周中某一天的值。我需要使用D3.time.getDate来获取月份中某一天的值

Date 2013-02-22T01:00:00.000Z
4