欢迎来到天天文库
浏览记录
ID:57688612
大小:15.50 KB
页数:2页
时间:2020-09-01
《js计算两个日期之间相差多少年多少月多少天.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、functiondateDiff(d1,d2){//计算两个日期之间相差多少年多少月多少天d1=newDate(d1.replace(/-/g,'/'));//开始时间d2=newDate(d2.replace(/-/g,'/'));//结束时间varobj={},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
2、=(d2.getFullYear()-d1.getFullYear())*12+M2-M1+(D1>D2?-1:0);if(D2>D1){//结束时间的日期大于开始时间的日期,则相差天数为结束日期天数减开始日期天数加1obj.D=D2-D1+1;if(M2==1
3、
4、M2==3
5、
6、M2==5
7、
8、M2==7
9、
10、M2==8
11、
12、M2==10
13、
14、M2==12){setDay(obj,"31");}elseif(M2==4
15、
16、M2==6
17、
18、M2==9
19、
20、M2==11){setDay(obj,"30");}elseif(M2==2){if(d2.getFullYear()%
21、4==0){setDay(obj,"29");}else{setDay(obj,"28");}}}elseif(D2==D1){//结束时间的日期等于开始时间的日期,则相差天数为1obj.D=1;}else{//结束时间的日期小于于开始时间的日期,则相差天数为开始时间所在月的天数减去开始时间日期加上结束时间的日期if(M1==1
22、
23、M1==3
24、
25、M1==5
26、
27、M1==7
28、
29、M1==8
30、
31、M1==10
32、
33、M1==12){obj.D=31-D1+D2+1;setDay(obj,"31");}elseif(M1==4
34、
35、M1==6
36、
37、M1==9
38、
39、M1==11){o
40、bj.D=30-D1+D2+1;setDay(obj,"30");}elseif(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;vartext="";if(obj.D>0){text=obj.D+"天";};if(obj.M>0){text=obj.M+"个月"+text;if(obj.Y>0){text=obj.Y+"年"
41、+text;}};if(obj.M==0){if(obj.Y>0){if(text){text=obj.Y+"年零"+text;}else{text=obj.Y+"年";};};};returntext;}functionsetDay(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
42、.Y+=1;}};}
此文档下载收益归作者所有