当前日期增加天,月,年

项目中遇到后台给的日期不完整的情况,需要的日期没有新增字段,后台只给出公式来计算。

enddate = 2017-4-26

开始计息就是enddate+1天

锁定期是 计息时间+(期限X30天)

👇是我网上找的一些代码自己稍做修改:

//指定天数加1天
function dateAdd(startDate) {
startDate = new Date(startDate);
startDate = +startDate + 1000*60*60*24;
startDate = new Date(startDate);
var nextStartDate = startDate.getFullYear()+"-"+(startDate.getMonth()+1)+"-"+startDate.getDate();
return nextStartDate;
}

//指定天数加N天
function DateAdd(interval,number,date)
{
/*
* 功能:实现VBScript的DateAdd功能.
* 参数:interval,字符串表达式,表示要添加的时间间隔.
* 参数:number,数值表达式,表示要添加的时间间隔的个数.
* 参数:date,时间对象.
* 返回:新的时间对象.
* var now = new Date();
* var newDate = DateAdd( "d ",5,now);
*--------------- DateAdd(interval,number,date) -----------------
*/
switch(interval)
{
case "y" : {
date.setFullYear(date.getFullYear()+number);
return date;
break;
}
case "q" : {
date.setMonth(date.getMonth()+number*3);
return date;
break;
}
case "m" : {
date.setMonth(date.getMonth()+number);
return date;
break;
}
case "w" : {
date.setDate(date.getDate()+number*7);
return date;
break;
}
case "d" : {
date.setDate(date.getDate()+number);
return date;
break;
}
case "h" : {
date.setHours(date.getHours()+number);
return date;
break;
}
case "m" : {
date.setMinutes(date.getMinutes()+number);
return date;
break;
}
case "s" : {
date.setSeconds(date.getSeconds()+number);
return date;
break;
}
default : {
date.setDate(d.getDate()+number);
return date;
break;
}
}
}

var now = new Date(enddate);
//加五天.
var newDate = DateAdd( "d ",5,now);
alert(newDate.toLocaleDateString());
//加两个月.
newDate = DateAdd( "m ",2,now);
alert(newDate.toLocaleDateString());
//加一年
newDate = DateAdd( "y ",1,now);
alert(newDate.toLocaleDateString());
以上的出的只是时间对象,要想获得类似‘2017-4-16’这样的字段还需要稍做处理:
var year = newDate.getFullYear();
var month = newDate.getMonth();
var day = newDate.getDays();
var reasult = year + '-' + month + '-' + day;
posted @ 2017-04-27 19:56  EVATxu  阅读(173)  评论(0编辑  收藏  举报