Javascript d3区间.细胞行为
以month.ceil为例,如果我们调用函数Javascript d3区间.细胞行为,javascript,d3.js,Javascript,D3.js,以month.ceil为例,如果我们调用函数 date = new Date (2010, 0, 1) d3.time.month.ceil将在上调用相同的函数时返回自身 +date+1 下个月的第一天。太好了 问题: 由于我的数据是每日时间序列(没有时间,只有“YYYY-MM-DD”),因此通过ceil进行取整时,我需要 接下来的一个月,比如说“2010-01-01”,因为该事件指的是整个1月1日,而不是确切的午夜 (如d3.time.month.ceil(新日期(“2010-01-01”
date = new Date (2010, 0, 1)
d3.time.month.ceil
将在上调用相同的函数时返回自身
+date+1
下个月的第一天。太好了
问题:
由于我的数据是每日时间序列(没有时间,只有“YYYY-MM-DD”),因此通过ceil进行取整时,我需要
接下来的一个月,比如说“2010-01-01”,因为该事件指的是整个1月1日,而不是确切的午夜
(如d3.time.month.ceil(新日期(“2010-01-01”))
所想)
除了
+date+1
)之外,我还有什么更可靠的方法可以使用(在d3
或其他任何地方)?关于日期的问题?我不太清楚这个问题。您想从一个特定的日期开始,然后从该日期开始计算下一个月?还是第二天?如果date
是一个日期对象,那么doign+date+1
将增加一毫秒。所以我对其意图感到困惑。@ScottCameron在我的示例中date
就是您在定义中看到的,即newdate(2010,0,1)
+date+1
像往常一样添加一毫秒,因此ceil
返回下个月,而不是当前月份。我想问的是:在d3(或纯js)中有没有办法避免这种变通方法?然后我说:一种方法是处理对象或纯date
对象,而不是datetime(如newdate
),您可以使用interval.offset
函数的每月时间间隔来添加一个月(例如d3.time.month.offset(date,1)
)?您仍然需要将日期转换为JavaScript日期,但如果您使用的间隔是您所关心的粒度,则这并不重要。