new Date(现在的时间.getTime()+个月的时间的毫秒数)试试
不很明白你的意思

解决方案 »

  1.   


    比如今天是2012-12-13,我想用js获取1个月,3个月,6个月,一年之后的日期,该怎么写?并且是YYYY-mm-dd格式的var d = new Date();
    d.setMonth(d.getMonth()+3);这样的格式不正确
      

  2.   


    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="gb2312" />
    <title></title>
    <style>
    input { width:200px; }
    </style>
    </head>
    <body>
    <select id="time">
    <option value="0">请选择</option>
    <option value="1">一周前</option>
    <option value="2">一个月前</option>
    <option value="3">三个月前</option>
    <option value="4">半年前</option>
    <option value="5">一年前</option>
    <option value="6">一年后</option>
    </select>
    <input type="text" id="stime" value="选择的时间"/>
    <input type="text" id="etime" value="当前时间"/>
    <script>
    function $(el){
    return typeof el == 'string' ? document.getElementById(el) : el;
    }
    var s = $('stime');
    var e = $('etime');
    $('time').onchange = function(){
    var d = new Date();
    e.value = d.toLocaleString().replace(/年|月/g, '-').replace('日', '');
    switch( +this.value ){
    case 1:
    s.value = setTime(d, {type:'d', value: -7});
    break;
    case 2:
    s.value = setTime(d, {type:'M', value: -1});
    break;
    case 3:
    s.value = setTime(d, {type:'M', value: -3});
    break;
    case 4:
    s.value = setTime(d, {type:'M', value: -6});
    break;
    case 5:
    s.value = setTime(d, {type:'y', value: -1});
    break;
    case 6:
    s.value = setTime(d, {type:'y', value: 1});
    break;
    }
    }

    function setTime(d, opts){
    if(!d) return;
    var t = opts.type || 'd',
    v = opts.value || 1;
    switch( t ){
    case 'y':
    d.setFullYear( d.getFullYear() + v );
    break;
    case 'M':
    d.setMonth( d.getMonth() + v );
    break;
    case 'd':
    d.setDate( d.getDate() + v );
    break;
    case 'h':
    d.setHours( d.getHours() + v );
    break;
    case 'm':
    d.setMinutes( d.getMinutes() + v );
    break;
    case 's':
    d.setSeconds( d.getSeconds() + v );
    break;
    }
    return d.toLocaleString().replace(/年|月/g, '-').replace('日', '');
    }

    </script>
    </body>
    </html>
      

  3.   

    //  n个月后的日期
    function addmulMonth(dtstr, n)
    {      
        var s = dtstr.split("-");
        var yy = parseInt(s[0]);
        var mm = parseInt(s[1])-1 ; 
        var dd = parseInt(s[2]); 
        var dt = new Date(yy, mm, dd); 
        dt.setMonth(dt.getMonth() + n);
        var month = parseInt(dt.getMonth()) + 1;
        return dt.getFullYear() + "-" + month  + "-" + dd;
    }   问题解决了,看了上面的代码,自己改好了,多谢。
      

  4.   

    如果n个月之后,dt.getMonth() + n 这个值大于12会有问题么