var dataUtil = ( function(){
return {
/**
* getXAxis()方法作用:获取开始日期和结束日期之间(包含开始日期和结束日期)的日期数组,可作为时间轴坐标等
* @param filters: {tab:0/1/2, startTime:开始日期, endTime:结束日期}
* 说明: tab:取值0或1或2,分别表示日、月、年,对应的startTime和endTime的格式分别为'yyyy-MM-dd'、'yyyy-MM'、'yyyy'
*/
getXAxis: function(filters) {
var tab = filters.tab;
var startTime = new Date(filters.startTime);
var endTime = new Date(filters.endTime);
var length = 0; //日期跨度变量
if( 0 == tab ) {
length = (endTime.getTime() - startTime.getTime()) / (1000*24*60*60) + 1;
} else if( 1 == tab ) {
length = (endTime.getFullYear() - startTime.getFullYear()) * 12 + (endTime.getMonth() - startTime.getMonth()) + 1;
} else {
length = endTime.getFullYear() - startTime.getFullYear() + 1;
}
var xAxis = new Array(length);
xAxis[0] = filters.startTime;
for( var i = 1; i < length; i++ ) {
if( 0 == tab ) {
startTime.setDate( startTime.getDate() + 1 );
xAxis[i] = startTime.Format("yyyy-MM-dd");
} else if( 1 == tab ) {
startTime.setMonth( startTime.getMonth() + 1 );
xAxis[i] = startTime.Format("yyyy-MM");
} else {
startTime.setFullYear( startTime.getFullYear() + 1 );
xAxis[i] = startTime.Format("yyyy");
}
}
return xAxis;
},
/**
* 根据X坐标数组生成对应的Y坐标数组
* @param xArr: 上面getXAxis()方法返回的X坐标(时间轴坐标)数组;
* list:[{xAxis:"2017-03-01", yAxis:"200"},{xAxis:"2017-03-02", yAxis:"100"},...] 后台返回的坐标点数组,按时间升序排列
*/
getYAxis: function(xArr, list) {
var len = xArr.length;
var yAxis = new Array(len);
var j = 0; listLen = list.length;
for( i in xArr ) {
if( j < listLen && xArr[i]== list[j].xAxis ) {
yAxis[i] = list[j].yAxis;
j ++;
} else {
yAxis[i] = 0;
}
}
return yAxis;
}
};
})();
(上面代码为原创,下面代码来自:http://www.cnblogs.com/zhangpengshou/archive/2012/07/19/2599053.html,)
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).Format(“yyyy-MM-dd hh:mm:ss.S”) ==> 2006-07-02 08:09:04.423
// (new Date()).Format(“yyyy-M-d h:m:s.S”) ==> 2006-7-2 8:9:4.18
Date.prototype.Format = function (fmt) { //author: meizz
var o = {
“M+”: this.getMonth() + 1, //月份
“d+”: this.getDate(), //日
“h+”: this.getHours(), //小时
“m+”: this.getMinutes(), //分
“s+”: this.getSeconds(), //秒
“q+”: Math.floor((this.getMonth() + 3) / 3), //季度
“S”: this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.
1,(this.getFullYear()+"").substr(4−RegExp.
1.length));
for (var k in o)
if (new RegExp(“(” + k + “)”).test(fmt)) fmt = fmt.replace(RegExp.
1,(RegExp.
1.length == 1) ? (o[k]) : ((“00” + o[k]).substr((“” + o[k]).length)));
return fmt;
}
调用:
var time1 = new Date().Format(“yyyy-MM-dd”);
var time2 = new Date().Format(“yyyy-MM-dd HH:mm:ss”);