关闭

js对日期进行相加

423人阅读 评论(0) 收藏 举报
分类:

        今天,做一个小功能,确定一个实际验收日期(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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9815次
    • 积分:231
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:2篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论