D3 日期范围(按小时);每 7 天重复一次

D3 date range by hour; day repeats every 7 days

本文关键字:一次 范围 日期 小时 D3      更新时间:2023-09-26

因此,我正在研究一种可视化,该可视化可以计算一年中每天每个小时太阳在特定位置的角度和距离。计算占用大约 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 值循环。认为这可能是计算中的问题,我尝试直接打印出小时范围的日值,发现发生了同样的问题。读取 D3 库的时间间隔 API 参考,这似乎是一个异常错误。

有谁知道为什么会发生这种情况,以及任何解决方案来获取小时范围及其相对日期,而不会每周重复出现日期值的问题?对此的任何见解将不胜感激!

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

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

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

4

当它显然应该是 22 时。

D3.time.getDay() 返回星期几的值。我需要使用 D3.time.getDate() 来获取月份中的某天的值。