根據輸入框內的時間日期,獲得該日期前6天的日期;
image.png
得到該時間近一周的日期:
image.png
我原先寫了得到前一天的函數:
//計算前一天,使圖表地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時,所呈現出的時間是:
image.png
解決:
在創建時減少一個月,獲取月份時增加一個月;
//計算前一天,使圖表地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;
}