首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JS 在已知的日期基础以上加N个月

2013-08-01 
JS在已知的日期基础之上加N个月已知日期:2013-07-31加12个月3个月1个月得到相应的日期求大牛怎么写JS代码?

JS 在已知的日期基础之上加N个月
已知日期:2013-07-31  加12个月   3个月    1个月  得到相应的日期

求大牛怎么写JS代码?
[解决办法]


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());  
                    }  
                }


[解决办法]
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());

[解决办法]

[解决办法]
引用:
Quote: 引用:

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());

这个明显不对,有些月分还有28天 


那就要看你如何规定的了,多出来的天数是添加到下个月中,还是忽略掉?
[解决办法]
var date = new Date('2013-07-31');
date.setMonth(date.getMonth() + 1);


[解决办法]
这个应该是你要的了, 考虑到了天数问题


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) )

热点排行