根据输入框内的时间日期,获得该日期前6天的日期;
得到该时间近一周的日期:
我原先写了得到前一天的函数:
//计算前一天,使图表地x轴动态显示
function preDay(now){
var l = new Array();
if(now.indexOf("-") >= 0)
var data = now.split("-");
else var data = now.split("/");
var year = data[0];
var month = data[1];
var day = data[2];
var dd = new Date();
var d = new Date(year, month, day);
// console.log(year+"-"+month+"-"+day);
for(var i = 6; i >= 0;i--){
dd.setTime(d.getTime()-24*60*60*1000*i);
var y = dd.getFullYear();
var m = dd.getMonth();
var d2 = dd.getDate();
// console.log(dd+"~"+m);
l.push(([y,m,d2].join('-')));
}
return l;
}
在使用过程中发现,从输入框得到的日期是2017-5-31,但var d = new Date(year, month, day);所创建的日期是2017-6-30,而在var m = dd.getMonth();时得到的月份是5;
但是这样得到的日期就是少一个月的,如我的输入框日期为2017-02-01时,所呈现出的时间是:
解决:
在创建时减少一个月,获取月份时增加一个月;
//计算前一天,使图表地x轴动态显示
function preDay(now){
var l = new Array();
if(now.indexOf("-") >= 0)
var data = now.split("-");
else var data = now.split("/");
var year = data[0];
var month = data[1];
var day = data[2];
var dd = new Date();
var d = new Date(year, month-1, day);
// console.log(year+"-"+month+"-"+day);
for(var i = 6; i >= 0;i--){
dd.setTime(d.getTime()-24*60*60*1000*i);
var y = dd.getFullYear();
var m = dd.getMonth()+1;
var d2 = dd.getDate();
// console.log(dd+"~"+m);
l.push(([y,m,d2].join('-')));
}
return l;
}