js根据开始时间和结束时间计算月差

时间:2022-07-06 17:05:29
我的开始时间和结束时间是通过日期控件得到的一个如“2009-06-12”的日期。
代码如下:

开始时间:<s:textfield name="ksrq" id="ksrq" readonly="true" />
         <img onclick="WdatePicker({el:$dp.$('ksrq')})" 
               src="js/common/datePicker/skin/datePicker.gif" 
               width="16" 
               height="22" 
               align="absmiddle">
结束时间:<s:textfield name="zzrq" id="zzrq" readonly="true" />
<img onclick="WdatePicker({el:$dp.$('zzrq')})" 
               src="js/common/datePicker/skin/datePicker.gif" 
               width="16" 
               height="22" 
               align="absmiddle">

月份差:<s:textfield name="htqx" onfocus="sumdate()" />

实现只要通过点击控件得到开始和结束时间,然后月份差的文本框中就会出现月份差的数据。


请各位帮帮忙。在线等。
            

4 个解决方案

#1


用时间戳

#2


用js计算

#3


参考下这个:
http://topic.csdn.net/u/20090314/12/45e6baab-d738-427c-8ac8-2d7d85fd0e6f.html

#4


你取得的是个带day的,不知道怎么弄,我这里倒是有个按每个月30天算,然后4舍5入的,直接拷成html可执行,参考下:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档 </title>
</head>
<script>
function getTime(obj){
var stime=document.getElementById('ksrq').value;
var etime=document.getElementById('zzrq').value;
var stime1=stime.split("-");
var etime1=etime.split("-");
stime=stime1[1]+"/"+stime1[2]+"/"+stime1[0];
etime=etime1[1]+"/"+etime1[2]+"/"+etime1[0];
var days=Math.ceil((Date.parse(etime)-Date.parse(stime))/1000/60/60/24);//时间差:天
var monthE = Math.round(days/30); //时间差:按30天一个月算,4舍5入。
obj.value=monthE;
}
</script>
<body>
<input name="ksrq" id="ksrq" type=text value=2009-01-01>
<input name="zzrq" id="zzrq" type=text value=2009-11-01>
<input type=text name=myno size=20 onfocus="getTime(this)"/>
</body>
</html> 

#1


用时间戳

#2


用js计算

#3


参考下这个:
http://topic.csdn.net/u/20090314/12/45e6baab-d738-427c-8ac8-2d7d85fd0e6f.html

#4


你取得的是个带day的,不知道怎么弄,我这里倒是有个按每个月30天算,然后4舍5入的,直接拷成html可执行,参考下:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档 </title>
</head>
<script>
function getTime(obj){
var stime=document.getElementById('ksrq').value;
var etime=document.getElementById('zzrq').value;
var stime1=stime.split("-");
var etime1=etime.split("-");
stime=stime1[1]+"/"+stime1[2]+"/"+stime1[0];
etime=etime1[1]+"/"+etime1[2]+"/"+etime1[0];
var days=Math.ceil((Date.parse(etime)-Date.parse(stime))/1000/60/60/24);//时间差:天
var monthE = Math.round(days/30); //时间差:按30天一个月算,4舍5入。
obj.value=monthE;
}
</script>
<body>
<input name="ksrq" id="ksrq" type=text value=2009-01-01>
<input name="zzrq" id="zzrq" type=text value=2009-11-01>
<input type=text name=myno size=20 onfocus="getTime(this)"/>
</body>
</html>