js对日期进行相加

        今天,做一个小功能,确定一个实际验收日期(date),然后再确定一个免费维护期(年),然后用来计算免费维护截止日期,开始免费维护其要求是正数,想想,挺简单,先将日期用split截取,然后加到年份上,再拼接

var dateArr=date.split("-");
var year=parseInt(dateArr[0])+y;
var finalDate=year+"-"+dateArr[1]+"-"+dateArr[2];

        接着,过了一会,告诉我这个免费维护其得支持两位小数,还想用拼接试一下,整数部分加到年份上,小数部分乘12加到月份上,剩下乘以30(每月按30天算)加到天上,接着一想就傻眼了,这样还得判断日期是不是超过当月最大天数,月份是不是超过12...各种判断,只能看看JS中Date对象的一些函数,看有没有类似功能的,什么都没找到,不过看到getTime()函数的时候,到想到个办法,就是把日期和年份值都转换成毫秒,想加之后再转换成日期

顺便扩展了一下,可以支持月份和天数

function dateAdd(y,type,date){
	var second=0;
	if(typeof(date)=="string"){
		var date=new Date(Date.parse(date));
		second=date.getTime();
	}
	else if(typeof(date)=="object")
		second=date.getTime();
	var ySecond=0;
	if(type=="y")
		ySecond=parseFloat(y)*365*24*3600*1000;
	else if(type=="m")
		ySecond=parseFloat(y)*30*24*3600*1000;
	else
		ySecond=parseFloat(y)*24*3600*1000;
	second+=ySecond;
	var finalDate=new Date(second);
	return finalDate.toLocaleDateString();
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值