js计算两个日期间的天数月

js计算两个日期间的天数月

计算结果为几个月零几天

<html>
  <head>
    <title>计算天数月</title>
    <meta charset="GBK">
	<script type="text/javascript">
	function dateU(date1,date2){//date2-date1
		var y1=Number(date1.substr(0,4));//年
		var y2=Number(date2.substr(0,4));
		var m1=Number(date1.substr(4,2));//月
		var m2=Number(date2.substr(4,2));
		var ym1=Number(date1.substr(0,6));//年月
		var ym2=Number(date2.substr(0,6));
		var d1=Number(date1.substr(6,2));//日
		var d2=Number(date2.substr(6,2));
		var day=0;
		var month=0;
		var maxDay=[31,28,31,30,31,30,31,31,30,31,30,31];//当月最大天数
		var index=0;//maxDay的数组编号
		while(ym1<ym2){
			if(m1==12){
				m1=1;
				y1++;
				month++;
			}else{
				m1++;
				month++;
			}
			ym1=y1*100+m1;
		}//递增到年月相同时停止
		if(d2>=d1){//年月相同且日2>=日1
			day=d2-d1;
		}else{//年月相同且日2<日1,取上月最大天数计算
			month--;//最后月,不足一个月
			if(m2==1){//1月
				index=11;//取12月的
			}else if(m2==3){//2月
				index=1;
				//判断闰年否
				if(y2%100==0){
					if(y2%400==0){
						maxDay[1]=29;
					}
				}else if(y2%4==0){
					maxDay[1]=29;
				}
			}else{
				index=m2-1;
			}
			day=maxDay[index]-d1+d2;			
		}
		return month+"月零"+day+"天";
	}
	
	function showMonthDay(){
		var date1=document.getElementById("date1").value;
		var date2=document.getElementById("date2").value;
		alert(dateU(date1,date2));
	}
	</script>

  </head>
  
  <body>
     <div align="center"><br>
    开始日期:<input id="date1" value="20180707"></br>
    结束日期:<input id="date2" value="20201201"></br>
    <input type="button" onclick="showMonthDay()" value="计算">
    </div>
	<hr>
<i>
    Copyright (c) 2018 fhy</br>
    All Rights Reserved.
</i>
  </body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值