Javascript d3时间刻度在时间范围之前和之后加上时间间隔的百分比
我正在使用d3的time.scale.domain来绘制一些图形。e、 gJavascript d3时间刻度在时间范围之前和之后加上时间间隔的百分比,javascript,d3.js,Javascript,D3.js,我正在使用d3的time.scale.domain来绘制一些图形。e、 g var time_range=d3.time.scale().domain([new Date(2008, 1, 1), new Date(2015, 11, 10)]); 我如何向其添加+-10%的时间范围 function add_percentage(start_date, end_date , percentage){ //Add 2015 - 2008 => Around 7 years , i
var time_range=d3.time.scale().domain([new Date(2008, 1, 1), new Date(2015, 11, 10)]);
我如何向其添加+-10%的时间范围
function add_percentage(start_date, end_date , percentage){
//Add 2015 - 2008 => Around 7 years , if percentage = 10 => around 9-10 months before and after
}
add_percentage(new Date(2008, 1, 1),new Date(2015, 11, 10),10)
//Should return around 9-10 months before and after.
您可以使用下面的代码来实现这一点。我认为,如果你研究的是日与月之间的差异,而不仅仅是月,那将是最好的,因为这将使你更加准确。但由于您使用的是百分比,我认为在现阶段,准确度并没有那么重要
function add_percentage(s, e , percentage){
var t2 = e.getTime();
var t1 = s.getTime();
diff= parseInt((t2-t1)/(24*3600*1000))*percentage/100;
d1=new Date(s.getFullYear(),s.getMonth(),s.getDay()-diff);
d2=new Date(e.getFullYear(),e.getMonth(),e.getDay()+diff);
return {start:d1, end:d2}
}
这对你有帮助吗?试试d3.time.scale().domain(…).nice()
。