alert("当前日期为: " + mydate.toLocaleString());
-------------------------
下面代码中,我如果在增减天数文本框中提取字符.同样输入1,
我如果用parseint()处理,结果就是对的,否则结果就是错的.
为什么呢?<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE>日期计算 </TITLE>
<script language="javascript">
function dateprog1(myform) {
var mydate=new Date();
var vyear;
var vmonth;
var vdate;
var vday;
vyear=myform.txtyear.value;
vmonth=myform.txtmonth.value;
vmonth=vmonth-1;
vdate=myform.txtdate.value;
vday=myform.txtday.value;
//vday=parseInt(vday); //该句加与不加,为何差别这么大呢? if (!isNaN(vyear) && !isNaN(vmonth) && !isNaN(vdate) && !isNaN(vday))
{
vdate=myform.txtdate.value;
mydate.setFullYear(vyear);
mydate.setMonth(vmonth);
mydate.setDate(vdate);
alert("当前日期为: " + mydate.toLocaleString());
mydate.setDate(mydate.getDate()+vday);
alert("增减天数后日期为: " + mydate.toLocaleString());
//alert(typeof(123));
}
else 
{
alert(typeof(vyear));
alert("请输入合法日期");
}
}
</script>
 </HEAD> <BODY>
  <form name="form1">
年份: <input type="text" name="txtyear" > <p>
月份: <input type="text" name="txtmonth" > <p>
日期: <input type="text" name="txtdate" > <p>
增减天数: <input type="text" name="txtday" > <p>
<input type="button" value="查看增减月份后的日期" onclick="dateprog1(this.form)">
  </form>
 </BODY>
</HTML>

解决方案 »

  1.   

    因为从TEXT拿过来的都是默认字符串型.
    字符串和数字相加的时候,数字会先变成字符串相加
      

  2.   

    try:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE>日期计算 </TITLE>
    <script language="javascript">
    function dateprog1(myform) {
        var mydate=new Date();
        var vyear;
        var vmonth;
        var vdate;
        var vday;
        vyear=myform.txtyear.value;
        vmonth=myform.txtmonth.value;
        vmonth=vmonth-1;
        vdate=myform.txtdate.value;
        vday=myform.txtday.value;    alert(vday+1);///////////    vday=parseInt(vday);            //该句加与不加,为何差别这么大呢?    alert(vday+1);///////////
    /*
        if (!isNaN(vyear) && !isNaN(vmonth) && !isNaN(vdate) && !isNaN(vday))
        {
            vdate=myform.txtdate.value;
            mydate.setFullYear(vyear);
            mydate.setMonth(vmonth);
            mydate.setDate(vdate);
            alert("当前日期为: " + mydate.toLocaleString());
            mydate.setDate(mydate.getDate()+vday);
            alert("增减天数后日期为: " + mydate.toLocaleString());
            //alert(typeof(123));
        }
        else 
        {
            alert(typeof(vyear));
            alert("请输入合法日期");
        }
    */
    }
    </script>
     </HEAD> <BODY>
      <form name="form1">
        年份: <input type="text" name="txtyear" > <p>
        月份: <input type="text" name="txtmonth" > <p>
        日期: <input type="text" name="txtdate" > <p>
        增减天数: <input type="text" name="txtday" > <p>
        <input type="button" value="查看增减月份后的日期" onclick="dateprog1(this.form)">
      </form>
     </BODY>
    </HTML>