假设我有一些数据可以跨越28-31天。我不知道数据跨越了多少天,但我知道开始和结束日期,并且我使用两个日期作为域创建了d3时间刻度。
如果我指定每天需要1个刻度,是否有办法让轴返回它要创建的刻度?
或换句话说,是否有另一种方法可以在Javascript中确定两个日期范围内的天数?
答案 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
,你可以得到它......还有相同的函数来计算小时,周,月等。
也许还有一种方法可以获得天数 - 而不会产生实际的日期数组 - 但我找不到。