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

时间:2013-06-22 00:08:07

标签: javascript d3.js

例如,我有startend

start = new Date(2013, 2, 28)
end   = new Date(2013, 3, 2)

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

[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)]

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

3 个答案:

答案 0 :(得分:4)

刚刚发现我可以range使用Time Intervals

d3.time.day.range(new Date(2013, 2, 28),
                  new Date(2013, 3, 2 + 1))

答案 1 :(得分:3)

用d3:

来做
var dateArray = d3.time.scale()
                .domain([new Date(2013, 2, 28), new Date(2013, 3, 2)])
                .ticks(d3.time.days, 1)

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

答案 2 :(得分:2)

要更新d3 V4 syntax的此答案,请使用:

var dateRange = d3.timeDays(new Date(2013, 2, 28), new Date(2013, 3, 2));

一些重要的注释:

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