已知日期:2013-07-31  加12个月   3个月    1个月  得到相应的日期求大牛怎么写JS代码?

解决方案 »

  1.   


    function dateAdd(date,strInterval, Number) {  //参数分别为日期对象,增加的类型,增加的数量 
                        var dtTmp = date;  
                        switch (strInterval) {   
        case 'second':
                            case 's' :
        return new Date(Date.parse(dtTmp) + (1000 * Number));  
    case 'minute':
                            case 'n' :
        return new Date(Date.parse(dtTmp) + (60000 * Number));  
    case 'hour':
                            case 'h' :
        return new Date(Date.parse(dtTmp) + (3600000 * Number)); 
                            case 'day':
                            case 'd' :
        return new Date(Date.parse(dtTmp) + (86400000 * Number)); 
                            case 'week':
                            case 'w' :
        return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));
    case 'month':
                            case 'm' :
        return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
                            case 'year':
    case 'y' :
        return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
                        }  
                    }
      

  2.   

    var yy = 2013, mm = 7, dd = 31;
    alert(new Date( yy, mm-1+12, dd).toLocaleString());
    alert(new Date( yy, mm-1+3, dd).toLocaleString());
    alert(new Date( yy, mm-1+1, dd).toLocaleString());
      

  3.   

    date = new Date();
    alert(date,"month", 3);   你这个好像不对,还是我调用有问题?  打印的时间一直是本地时间
      

  4.   


    function addMoth(d,m){
       var ds=d.split('-');
       d=new Date( ds[0],ds[1]-1+m,ds[2])
       return d.toLocaleDateString().match(/\d+/g).join('-')  
    }
     alert(  addMoth('2013-07-31 ',3) )
      

  5.   

    date = new Date();
    alert(date,"month", 3);   你这个好像不对,还是我调用有问题?  打印的时间一直是本地时间
    OK,我调用错了
      

  6.   

    var s= new date();
    var month=s.getMonth()+1;
    可以获取月份,然后随便处理
      

  7.   

    date = new Date();
    alert(date,"month", 3);   你这个好像不对,还是我调用有问题?  打印的时间一直是本地时间
    OK,我调用错了
     这个也没有考虑到 有的月份31天,有些28天。
      

  8.   

    var date = new Date('2013-07-31');
    date.setMonth(date.getMonth() + 1);
      

  9.   

    这个应该是你要的了, 考虑到了天数问题function addMoth(d,m){
       var ds=d.split('-'),_d=ds[2]-0;
       var nextM=new Date( ds[0],ds[1]-1+m+1, 0 );
       var max=nextM.getDate();
       d=new Date( ds[0],ds[1]-1+m,_d>max? max:_d );
       return d.toLocaleDateString().match(/\d+/g).join('-')
    }
     alert(  addMoth('2013-07-31 ',7) )