Javascript 从最小日期开始添加一个月的填充

Javascript 从最小日期开始添加一个月的填充,javascript,datetime,d3.js,Javascript,Datetime,D3.js,首先,我想动态地处理任何类型的时态数据集的日期范围。这是我通过以下方式实现的: var earliest = d3.min(data.map(d=>d.date)); var latest = d3.max(data.map(d=>d.date)); 然后我想添加一个月的填充,这样数据就不会像挂在边缘上那样不稳定了。所以我试着: var dateMin = earliest; var dateMax = latest; dateMin.setDate(dateMin.getMon

首先,我想动态地处理任何类型的时态数据集的日期范围。这是我通过以下方式实现的:

var earliest = d3.min(data.map(d=>d.date));
var latest = d3.max(data.map(d=>d.date));
然后我想添加一个月的填充,这样数据就不会像挂在边缘上那样不稳定了。所以我试着:

var dateMin = earliest;
var dateMax = latest;

dateMin.setDate(dateMin.getMonth()-30);
dateMax.setDate(dateMax.getMonth()+30);
虽然我复制了它,但标尺似乎仍然记得最初的
最早的
值。也就是说,所有这一切最终都是将我的数据点更改为更早的日期,这意味着结果是不变的;它仍然悬在边缘

问题:
有没有一种简单的方法可以用来计算刻度,这样就可以多填充30天?

关于您的问题:
最早的
最早的
指向同一个对象。改变一个会改变另一个:

var最早=新日期();
var dateMin=最早;
dateMin.setDate(dateMin.getMonth()-30);
控制台日志(最早)