下面是我写的一段代码:
注:TB_DJ_Time=30
 var ba=document.all(\"TB_DJ_Time\").value;
 var b=new Date();";
 var c = (b.getFullYear() + \"-\" +(b.getMonth()+1)+\"-\" + b.getDate());
 var ty=new Date(b.getFullYear(),b.getMonth()+1,b.getDate());
 alert(ty);";
alert(ba);";
var my_date_ago = new Date(ty.getTime() + ba * 24 * 60 * 60 * 1000 );
alert(my_date_ago.getFullYear() + \"-\" +(my_date_ago.getMonth())+\"-\" + my_date_ago.getDate());
我计算机的当前日期是:2009-09-01,加30天后得出的结果是:2009-09-31,请教一下,该问题如何解决,谢谢!

解决方案 »

  1.   

    var b = new Date();
    var c = new Date(b.getFullYear(),b.getMonth(),b.getDate()+30);
    alert(c.getFullYear()+"-"+(c.getMonth()+1)+"-"+c.getDate())
      

  2.   


    var ADDTIME=30;
    var dt = new Date();
    var dt30 = new Date(dt.getTime()+ADDTIME*24*3600*1000);
    alert(dt30.toLocaleDateString().replace('年','-').replace('月','-').replace('日',''))
    }
      

  3.   

    你们讲的都忽略了一个问题,那就是:
    这里不得不做补充,浪费好多时间得出教训:
    Javascript 对时间的代号 
    0-11数字表示1-12月:  var a= new Date(2006,5,6)  结果是2006-6-6
      

  4.   

    好像vbscript的客户端脚本对日期操作有比较强大的函数,
    请百度搜多vbscript日期操作。
      

  5.   

    没错啊,你再看看        var ADDTIME=30;
            var dt = new Date("2009/09/01");
            var dt30 = new Date(dt.getTime()+ADDTIME*24*3600*1000);
            alert(dt30.toLocaleDateString().replace('年','-').replace('月','-').replace('日',''))
      

  6.   

    var b = new Date();
    var c = new Date(b.getYear(),b.getMonth()+1,b.getDate());
    alert(c.getYear()+"-"+c.getMonth()+"-"+c.getDate());
      

  7.   


    var ADDTIME=30;
    var dt = new Date("2009/09/01");
    var dt30 = new Date(dt.getTime()+ADDTIME*24*3600*1000);
    alert(dt30.toLocaleDateString().replace('年','-').replace('月','-').replace('日',''));
    var dtold=new Date(dt30.getTime()-ADDTIME*24*3600*1000);
    alert(dtold.toLocaleDateString().replace('年','-').replace('月','-').replace('日',''));