JS计算时间差,计算月份差的简单案例

<head>
<script>
function OnClick(){
	//获取开始日期
	var startdate =document.getElementById("startdate").value;
	//获取当前日期
	var d = new Date();
	//获取当前年
	var year = d.getFullYear();
	//获取当前月,需要+1
	var month = d.getMonth() + 1;
	
	var months = month < 10 ? ("0" + month) : month;
	var dt = d.getDate();
	dt = dt < 10 ? ("0" + dt) : dt;
	var today = year + "-" + months + "-" + dt;
	document.getElementById("a").value = today;
	//获取起始日期的月份
	var sMonth = startdate.split("-")[1];
	if(sMonth < 10){
		sMonth = sMonth.substr(1,2); //去除月份前的0操作 例: 2013-01-01  
	}
	//获取起始日期的年份
	var sYear = startdate.split("-")[0];
	//月份比较
	if(this.getMonths(sYear,sMonth,year,month)>4){
		alert("不能查询4个月之前!");
	}
	document.getElementById("b").value = this.getDays(startdate,today);
}

//计算日期之差
function getDays(strDateStart,strDateEnd){
   var strSeparator = "-"; //日期分隔符
   var oDate1;
   var oDate2;
   var iDays;
   oDate1= strDateStart.split(strSeparator);
   oDate2= strDateEnd.split(strSeparator);
   var strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);
   var strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);
   iDays = parseInt(Math.abs(strDateE - strDateS ) / 1000 / 60 / 60 /24)//把相差的毫秒数转换为天数 
   return iDays ;
}

//计算月份之差
function getMonths(startYear,startMonth,nowYear,nowMonth){
	//规则:(当前年份-起始年份)*12+当前月份-起始月份
	var count = (nowYear - startYear)*12 + nowMonth - startMonth;
	return count;
}

</script>
</head>
<body>
<table>
<tr>
	<td  class="formLabel">时间:</td>
	<td  class="formField">
		<input type="text" maxlength="16" class="dateField"    name="startdate" id="startdate" value="2013-12-31" />
	</td>
	<td>
		<button class="formButton" id="riskSearch" name="riskSearch" οnclick="OnClick()">查询</button>
	</td>
</tr>
<tr>
	<td  class="formLabel">输出:</td>
	<td>
		<input type="text" maxlength="16" class="dateField"    name="a" id="a" value="" />
	</td>	
	
</tr>
<tr>
	<td  class="formLabel">输出:</td>
	<td>
		<input type="text" maxlength="16" class="dateField"    name="b" id="b" value="" />
	</td>	
</tr>
</table>
</body>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值