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)) //日
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值