js 判断两个时间相差多少月_js计算两个日期之间相差多少年多少月多少天

function

dateDiff(d1,d2){//

计算两个日期之间相差多少年多少月多少天

d1 = new Date(d1.replace(/-/g,'/'));//

开始时间

d2 = new Date(d2.replace(/-/g,'/'));//

结束时间

var obj={},M1=d1.getMonth()+1,D1=d1.getDate(),M2=d2.getMonth()+1,D2=d2.getDate();

obj.Y=d2.getFullYear() - d1.getFullYear() + (M1*100+D1 > M2*100+D2 ? -1 : 0);//

相差年份计

obj.M=(d2.getFullYear() - d1.getFullYear()) * 12 + M2 - M1 + (D1 > D2 ? -1 : 0);

if(D2>D1){//

结束时间的日期大于开始时间的日期,

则相差天数为结束日期天数减开始日

期天数加

1

obj.D=D2-D1+1;

if(M2==1||M2==3||M2==5||M2==7||M2==8||M2==10||M2==12){

setDay(obj,"31");

}else if(M2==4||M2==6||M2==9||M2==11){

setDay(obj,"30");

}else if(M2==2){

if(d2.getFullYear()%4==0){

setDay(obj,"29");

}else{

setDay(obj,"28");

}

}

}else if(D2==D1){//

结束时间的日期等于开始时间的日期,则相差天数为

1

obj.D=1;

}else{//

结束时间的日期小于于开始时间的日期,

则相差天数为开始时间所在月的天数减

去开始时间日期加上结束时间的日期

if(M1==1||M1==3||M1==5||M1==7||M1==8||M1==10||M1==12){

obj.D=31-D1+D2+1;

setDay(obj,"31");

}else if(M1==4||M1==6||M1==9||M1==11){

obj.D=30-D1+D2+1;

setDay(obj,"30");

}else if(M1==2){

if(d1.getFullYear()%4==0){

obj.D=29-D1+D2+1;

setDay(obj,"29");

}else{

obj.D=28-D1+D2+1;

setDay(obj,"28");

}

};

};

obj.M=obj.M>=12?obj.M%12:obj.M;

var text="";

if(obj.D>0){

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值