格式 2018-7-25,通过day进行加运算,(昨天检测了几个,发现日期相减,如 getAddDate(2018-1-2,-3)得到的是2018-0-30,所以,这个只适用于加运算);因为我在网上看到,有很多朋友利用时间戳来进行计算,其实,这样不仅有些麻烦,而且比较浪费前端自带的功能,
function getAddDate(date,add,type){
//将所有的变量定义在最顶层
var splitFlag='',
temp='',
reData='';
//因为时间最普遍是以-和/来间隔
if(date.indexOf('/')>-1){
splitFlag='/';
}else if(date.indexOf('-')>-1){
splitFlag='-';
}else{
return;
}
temp=date.split(splitFlag);
if(temp.length==3){//仅仅以年月日
//默认以day进行加减
var addY=addM=addD=0;
switch(type){
case 1:
addY=Number(add);
break;
case 2:
addM=Number(add);
break;
default:
addD=Number(add);
break;
}
//new Date是浏览器自带的功能函数,它的功能十分强大,我们可以充分利用它,就像下面,只要将年月日按照具体的参数数据,将日期加减,就可以得到加后的日期,
reData= new Date(Number(temp[0])+addY,Number(temp[1])+addM,Number(temp[2])+addD);
//然后用Date自带的方法获得年月日,然后按照之前得到的符号 splitFlag 进行拼接。
return reData.getFullYear()+splitFlag+reData.getMonth()+splitFlag+reData.getDate();
}
}