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

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


2024年1月5日发(作者:)

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

function dateDiff(d1,d2){//计算两个日期之间相差多少年多少月多少天

d1 = new Date(e(/-/g,'/'));//开始时间

d2 = new Date(e(/-/g,'/'));//结束时间

var

obj={},M1=th()+1,D1=e(),M2=th()+1,D2=e();

obj.Y=lYear() - lYear() + (M1*100+D1 >

M2*100+D2 ? -1 : 0);//相差年份计算

obj.M=(lYear() - lYear()) * 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(lYear()%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(lYear()%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){

text=obj.D+"天";

};

if(obj.M>0){

text=obj.M+"个月"+text;

if(obj.Y>0){

text=obj.Y+"年"+text;

}

};

if(obj.M==0){

if(obj.Y>0){

if(text){

text=obj.Y+"年零"+text;

}else{

text=obj.Y+"年";

};

};

};

return text;

}

function setDay(obj,dTime){//当两个时间通过计算后的相差天数等于开始时间所在月的天数时,月份加一,天数重置为零

if(obj.D>=parseInt(dTime)){

obj.D=obj.D-parseInt(dTime);

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

obj.M+=1;

if(obj.M>=12){

obj.Y+=1;

}

};

}


发布者:admin,转转请注明出处:http://www.yc00.com/web/1704392374a1347764.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信