构造一个介于开始日期和结束日期之间的日期数组。(d3.js)

evf*_*qcg 5 javascript d3.js

例如,我有startend

start = new Date(2013, 2, 28)
end   = new Date(2013, 3, 2)
Run Code Online (Sandbox Code Playgroud)

我怎么能从这个数组中得到这样的

[new Date(2013, 2, 28),
 new Date(2013, 2, 29),
 new Date(2013, 2, 30),
 new Date(2013, 2, 31),
 new Date(2013, 3, 1),
 new Date(2013, 3, 2)]
Run Code Online (Sandbox Code Playgroud)

我目前正在阅读有关Time-Scales 的文档,但仍然无法理解如何使用它们来实现这种效果。(或者,也许有更好的方法来做到这一点,如果是这样,我很高兴知道)

Dav*_*cia 5

要为d3 V4 语法更新此答案,请使用:

var dateRange = d3.timeDays(new Date(2013, 2, 28), new Date(2013, 3, 2));
Run Code Online (Sandbox Code Playgroud)

一些重要的注意事项:

  • 月份是 0 索引的,所以 0 是一月。此示例将于 3 月 28 日开始,而不是 2 月 28 日。
  • 结束日期不包括在返回值中。因此,本示例中的最后一个日期是第 1 天,而不是第 2 天。


Ada*_*rce 3

使用 d3 执行此操作:

var dateArray = d3.time.scale()
                .domain([new Date(2013, 2, 28), new Date(2013, 3, 2)])
                .ticks(d3.time.days, 1)
Run Code Online (Sandbox Code Playgroud)

在线演示: http: //jsfiddle.net/aczuV/1/