日期计算和输入问题。在线等待............

DosonWL 2006-01-12 10:57:39
<SCRIPT LANGUAGE="JavaScript">
function chgbegdate()
{
//--------------------------------------说明-------------------------------------------
//功能:通过“开始日期”和“使用月份”,计算出结束日期来。然后把结果赋值给结束日期。
//不会的问题:ConsumeEndDate怎么也得不到计算的日期结果,的到的结果是:NaN-NaN-NaN。我也不知道哪里出了问题。本身也不是太懂javascript。请各位侠士帮助。
//mm:使用月份
//ConsumeBeginDate:开始日期
//ConsumeEndDate:结束日期
//-------------------------------------------------------------------------------------
var d1=document.form1.ConsumeBeginDate.value;
var getmm=document.form1.mm.value;
var fd1 = new Date(d1);
var xx=new Date(fd1.getFullYear(),fd1.getMonth()+getmm,fd1.getDate());
document.form1.ConsumeEndDate.value=document.form1.ConsumeEndDate.value=xx.getDate()+'-'+xx.getMonth()+'-'+xx.getFullYear();
}
</SCRIPT>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>使用日期计算</title>
</head>

<form name="form1" method="post">
开始日期:<input type="text" id="ConsumeBeginDate">
使用几个月:<select id="mm" onChange="chgbegdate()">
<option value="">=消费时间=</option>
<option value="1">1个月</option>
<option value="2">2个月</option>
</select>
结束日期:<input type="text" id="ConsumeEndDate">
</form>

</body>
</html>
...全文
116 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinastorm 2006-01-12
  • 打赏
  • 举报
回复
没有必要搞的那么麻烦,直接用ConsumeBeginDate加上1个月或者2个月就行了呀,用dateadd函数
苍白之月 2006-01-12
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE="JavaScript">
function chgbegdate()
{
//--------------------------------------说明-------------------------------------------
//本段代码就是示范以你的思路应该怎么写,不能实际应用
//实际操作还是用数据库的日期函数吧
//计算出的日期不一定合法 可能会出现2005-2-32或2006-13-32等情况
//-------------------------------------------------------------------------------------
var dyy=parseInt(document.form1.yy.value);
var dmm=parseInt(document.form1.mmonth.value);
var ddd=parseInt(document.form1.dd.value);
var getmm=parseInt(document.form1.mm.value);

var tmm=dmm+getmm;
temp=tmm/12;
if(temp==1){
addy=0;
addm=dmm+getmm;
}else{
temp=parseInt(temp);
addy=temp;
if(temp==0)
addm=dmm+getmm;
else
addm=tmm-addy*12;
}
document.form1.ConsumeEndDate.value=ddd+'-'+addm+'-'+(dyy+addy);
}
</SCRIPT>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>使用日期计算</title>
</head>

<form name="form1" method="post">
开始日期:<input type="text" id="yy" size=4 value=2006>
年<input type="text" id="mmonth" size=4 value=10>
月<input type="text" id="dd" size=4 value=1>日
使用几个月:<select id="mm" onChange="chgbegdate()">
<option value="">=消费时间=</option>
<option value="1">1个月</option>
<option value="2">2个月</option>
<option value="3">3个月</option>
<option value="22">22个月</option>
</select>
结束日期:<input type="text" id="ConsumeEndDate">
</form>

</body>
</html>
KimSoft 2006-01-12
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE="JavaScript">
function chgbegdate(o){
var consumeBeginDate = o.form.ConsumeBeginDate.value;
var consumeBeginDateArray = consumeBeginDate.split("-");
if (consumeBeginDateArray.length != 3){
alert("必须输入形如\"YYYY-MM-DD\"的日期!");
return;
}
mm = parseInt(o.options[o.selectedIndex].value);
if (mm + parseInt(consumeBeginDateArray[1]) > 12){
consumeBeginDateArray[1] = mm + parseInt(consumeBeginDateArray[1]) - 12;
consumeBeginDateArray[0] = parseInt(consumeBeginDateArray[0]) + 1;
} else {
consumeBeginDateArray[1] = mm + parseInt(consumeBeginDateArray[1]);
}
o.form.ConsumeEndDate.value = consumeBeginDateArray.join("-");
}
</SCRIPT>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>使用日期计算</title>
</head>

<form name="form1" method="post">
开始日期:
<input type="text" id="ConsumeBeginDate" value="2005-1-12" size="10" maxlength="10">
使用几个月:
<select id="mm" onChange="chgbegdate(this);">
<option value="0" selected>=消费时间=</option>
<option value="1">1个月</option>
<option value="2">2个月</option>
</select>
结束日期:
<input type="text" id="ConsumeEndDate">
</form>
</body></html>
KimSoft 2006-01-12
  • 打赏
  • 举报
回复
客户端用VBScript可以么,会方便不少

不然你这样写还有问题
如2005-12-10
加二个月后会变成2005-2-10,注意年份没有变
DosonWL 2006-01-12
  • 打赏
  • 举报
回复
更正:
我晕,这个是javascript,“必须”在客户端实现,不能用asp的函数。我也不想这么麻烦,但是必须这么做!
DosonWL 2006-01-12
  • 打赏
  • 举报
回复
我晕,这个是javascript,不许在客户端实现,不能用asp的函数。我也不想这么麻烦,但是必须这么做!

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧