[英]D3: ordinal scale returning undefined in part of its range
我有一个顺序刻度,该刻度在其域的第二部分返回undefined
。
// Return an array of all dates between date1 and date2 inclusive.
function days_in_range(date1, date2) {
if (date1 > date2)
return [];
var date = new Date(date1.getTime());
var dates = [];
while (date <= date2) {
dates.push(new Date(date));
date.setDate( date.getDate() + 1 );
}
return dates;
}
min_date = new Date("2015-10-12");
max_date = new Date('2015-11-10');
the_dates = days_in_range(min_date, max_date);
xx_scale = d3.scale.ordinal().domain(the_dates).rangeRoundBands([0, 790])
xx_scale(new Date('2015-10-12')); // Returns 4.
xx_scale(new Date('2015-10-24')); // Returns 328.
xx_scale(new Date('2015-10-25')); // Expect 355, but returns undefined.
从2015-10-25到范围的结尾,我不确定。 从域名开始到2015年10月24日,我得到了合理的数字。
days_in_range()
函数似乎确实返回正确。 我在这里复制它只是为了完整。
将max_date
设置为2015-10-26会产生相同的间隔(24到25之间)。
关于我在做什么的任何指示?
问题是两个方面的(如果我们算我是杜夫斯,则是三个方面):
the_days
之后,我可以很好地转换回年月日值。 2015-10-24T00:00:00.000Z
值从days_in_range()
返回的日期从Date 2015-10-24T00:00:00.000Z
为Date 2015-10-25T01:00:00.000Z
,但是new Date('2015-10-25')
返回Date 2015-10-25T00:00:00.000Z
。 注意一小时轮班。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.