javascript js 时间日期加减


function getDate(type, time, m, add) { 
    if(!type || !time || !m){
        return
    }
    var _time = String(time);
    if (type == 'YY') {
        if(add){
            return Number(time) + m;
        }else{
            return Number(time) - m
        }
    } else if(type == 'MM'){
        if(parseInt(m)>0){
            var t = _time.slice(0,4) + '-' + _time.slice(4);
            var myDate = new Date(t)
            var year = myDate.getFullYear();
            var month = myDate.getMonth()+1;
            var day = myDate.getDate();
            var result='';
            addYear = parseInt(parseInt(m) / 12); 
            addMon = parseInt(m) % 12; 
            if(add){
                if(addYear > 0){
                    year += addYear; 
                } 
                if( (addMon + month) >= 12 ){
                    console.log('add', addMon + month)
                    year = year + 1;
                    month = addMon + month - 12;
                    result = year + (month > 9 ? '' + month : '0' + month)
                }else{ 
                    month += addMon;
                    result = year + (month > 9 ? '' + month : '0' + month)
                }
            } else {
                if(addYear>0){
                    year -= addYear;  
                }
                if((addMon>month) || (addMon==month)){ 
                    year=year-1;
                    month=12 - addMon + month;
                    result=year + (month > 9 ? '' + month : '0' + month)
                }else{
                    month-=addMon;
                    result=year + (month > 9 ? '' + month : '0' + month)
                }
            }
            
            return result
        }
    } else if(type == 'DD'){
        const t = _time.slice(0,4) + '-' + _time.slice(4, 6) + '-' + _time.slice(6);
        let startTime 
        if(add){
            startTime = new Date(t).getTime() + m*24*60*60*1000;
        } else {
            startTime = new Date(t).getTime() - m*24*60*60*1000;
        }
        let _y = new Date(startTime).getFullYear(),
            _m = new Date(startTime).getMonth() + 1,
            _d = new Date(startTime).getDate(),
            _date = '' + _y + (_m > 9 ? _m : '0' + _m) + _d;
        return _date
    }
}
// 使用方法 年加减 getDate('YY', '2019', 加减n年, true代表加/false减)
// 使用方法 月加减 getDate('MM', '201906', 加减n个月, true代表加/false减)
console.log(getDate('DD', '20190602', 8, true)) //日
发布了40 篇原创文章 · 获赞 13 · 访问量 4万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览