如何从D3轴获取当前的刻度值?

时间:2015-02-05 01:11:43

标签: javascript datetime d3.js

假设我有一些数据可以跨越28-31天。我不知道数据跨越了多少天,但我知道开始和结束日期,并且我使用两个日期作为域创建了d3时间刻度。

如果我指定每天需要1个刻度,是否有办法让轴返回它要创建的刻度?

或换句话说,是否有另一种方法可以在Javascript中确定两个日期范围内的天数?

1 个答案:

答案 0 :(得分:1)

结帐d3.time.day。这是d3.time.scale用来做“时间数学”的东西。有点难以理解如何使用,但看起来有一种方法会在两个日期之间每天返回(在每天的午夜表示为Date对象)。

例如,以下是1月24日到现在之间的日子:

d3.time.day.range(new Date(2015,0,24), new Date())
/* returns
[
  Sat Jan 24 2015 00:00:00 GMT-0500 (EST),
  Sun Jan 25 2015 00:00:00 GMT-0500 (EST), 
  Mon Jan 26 2015 00:00:00 GMT-0500 (EST), 
  ...
  Tue Feb 03 2015 00:00:00 GMT-0500 (EST),
  Wed Feb 04 2015 00:00:00 GMT-0500 (EST)
]
*/

那么你就可以拿到那个数组的.length,你可以得到它......还有相同的函数来计算小时,周,月等。

也许还有一种方法可以获得天数 - 而不会产生实际的日期数组 - 但我找不到。