<script language="javascript" type="text/javascript">

function fillit()
{
var t1 = document.getElementById("t1");
var reg = /-/g;
var tpl = t1.value.replace(reg,'');
var year = parseInt(tpl.substr(0, 4), 10);
var month = parseInt(tpl.substr(4, 2), 10);
var date = parseInt(tpl.substr(6, 2), 10);
var ds = parseInt(document.getElementById("t2").value, 10);
var nd = new Date(year, month, date+ds);
document.getElementById("t3").value = nd.getYear()+'-'+nd.getMonth()+'-'+nd.getDate();
}

</script>
</HEAD><BODY>
<INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
<INPUT TYPE="text" NAME="t2" id="t2" value="" onblur="fillit();return true;" onclick="//fillit();">
<INPUT TYPE="text" NAME="t3" id="t3">
</BODY>
</HTML>

解决方案 »

  1.   

    <script language="javascript" type="text/javascript">

    function fillit(obj)
    {
    var t1 = document.getElementById("t1");
    var reg = /-/g;
    var tpl = t1.value.replace(reg,'');
    var year = parseInt(tpl.substr(0, 4), 10);
    var month = parseInt(tpl.substr(4, 2), 10);
    var date = parseInt(tpl.substr(6, 2), 10);
    var ds = parseInt(document.getElementById("t2").value, 10);
    var nd = new Date(year, month, date+ds);
    document.getElementById("t3").value = nd.getYear()+'-'+nd.getMonth()+'-'+nd.getDate();
    if (obj.value=='')
    { document.getElementById("t3").value = ''; }
    }

    </script>
    </HEAD><BODY>
    <INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
    <INPUT TYPE="text" NAME="t2" id="t2" value="请在这输入你的天数!!" onkeyup="fillit(this);return true;" onclick="this.value='';return true;">
    <INPUT TYPE="text" NAME="t3" id="t3">
    </BODY>
    </HTML>
      

  2.   

    根据楼主的意思,把lantersen(蓝水仁--倍感秋凉!~) 的修改了一下,看看是否是这个效果~test.htm
    ---------------------------------<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title></title>
    <script language="javascript" type="text/javascript">


    function fillit(obj)
    {
    var t1 = document.getElementById("t1");
    var reg = /-/g;
    var tpl = t1.value.replace(reg,'');
    var year = parseInt(tpl.substr(0, 4), 10);
    var month = parseInt(tpl.substr(4, 2), 10);
    var date = parseInt(tpl.substr(6, 2), 10);
    var ds = parseInt(document.getElementById("t2").value, 10);
    ds = getday(month,ds);
    var nd = new Date(year, month-1, ds);
    t1.value = nd.format('yyyy-MM-dd');
    }

    //根据月份返回每月最大的天数,输入参数应为数值型
    function getday(month,day)
    {
    var myLi = {
    month : [",1,3,5,7,8,10,12,", ",2,", ",4,6,9,11," ],
    maxDay : [ 31, 28, 30 ]
    }; for (i = 0; i < myLi["month"].length; i++) {
    if (myLi["month"][i].indexOf(","+month+",") >= 0){
    if (day>myLi["maxDay"][i])
    {
    return (myLi["maxDay"][i]);

    else {
    return day; 
    }
    };
    } }

    //日期格式化,如"yy-MM-dd"格式
    Date.prototype.format = function(format)
    {
    var o = {
    "M+" : this.getMonth()+1, //month
    "d+" : this.getDate(),    //day
    "h+" : this.getHours(),   //hour
    "m+" : this.getMinutes(), //minute
    "s+" : this.getSeconds(), //second
    "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
    "S" : this.getMilliseconds() //millisecond
    }
    if (/(y+)/.test(format)) 
    format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
    for(var k in o)
    if(new RegExp("("+ k +")").test(format))
    format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
    return format;
    }
    </script>
    </HEAD><BODY>
    <INPUT TYPE="text" NAME="t1" id="t1" value="2006-09-01">
    <INPUT TYPE="text" NAME="t2" id="t2" value="请在这输入你的天数!!" onkeyup="fillit(this);return true;" onclick="this.value='';return true;">
    </BODY>
    </HTML>
      

  3.   

    时间是可以直接进行加减的:<script>
    var str = "2006-09-01";
    var dt1 = new Date(str.substring(0, 4), str.substring(6, 7) - 1, str.substring(9, 10))
    var n = 31
    var dt2 = new Date(dt1.getTime() + (n - 1) * 24 * 60 * 60 * 1000);
    alert(dt2.toLocaleString());
    </script>不过搂主需要小心的是,getMonth 的月份 0 表示"1月",1 表示"2月"
      

  4.   

    代码为:<script>// 先按指定天数进行相加
    var str = "2006-09-01";
    var n   = 31var dt1 = new Date(str.substring(0, 4), str.substring(6, 7) - 1, str.substring(9, 10))
    var dt2 = new Date(dt1.getTime() + (n - 1)* 24 * 60 * 60 * 1000);// 检测月份如果变化变化
    if(dt1.getMonth() != dt2.getMonth())
    {
            // 设定为1号
            dt2.setDate(1);        // 往回减去1天
            dt2 = new Date(dt2.getTime() - 24 * 60 * 60 * 1000);
    }// 输出结果
    alert(dt2.toLocaleString());</script>