js实现指定日期增加指定月份,并用指定后日期计算时间差
//map为数据集
var yearA = map.get("billEndDate").getFullYear();
var monthA = map.get("billEndDate").getMonth()+1;
var dayA = map.get("billEndDate").getDate();
//后面不加00:00:00.000可能会出现天数差
var endDate = yearA+"-"+monthA+"-"+dayA+" 00:00:00.000";
var yearB = map.get("receivedDate").getFullYear();
var monthB = map.get("receivedDate").getMonth()+1;
var dayB = map.get("receivedDate").getDate();
var startDate = yearB+"-"+monthB+"-"+dayB+" 00:00:00.000";;
//算出相差天数
var days = parseInt((Date.parse(endDate) - Date.parse(startDate)) / (1000 * 60 * 60 * 24));
/*********************当前月加N月计算天数差**************************/
var date = new Date(map.get("receivedDate"));
var currentYear = date.getFullYear();//得到日期年
var currentMonth = date.getMonth()+1;//得到日期月
var currentDate = date.getDate();//得到日期天
var rstYear = currentYear; //结果年
var rstMonth = date.getMonth()+2;//得到日期月+之后n个月
if(rstMonth /12 > 1){
rstYear += Math.floor(rstMonth /12) ;
rstMonth = rstMonth %12;
}
var rstDay = new Date(rstYear, rstMonth, 0).getDate();//得到新的日期月份最大有几天
rstDay = Math.min(currentDate, rstDay );//日期设置为两者较小的一个
var ymd = rstYear+"-"+rstMonth+"-"+rstDay+" 00:00:00.000" ;
//算出天差
var dayss = parseInt((Date.parse(endDate) - Date.parse(ymd)) / (1000 * 60 * 60 * 24));
//赋值
data.set("discountDays",dayss) ;