获取n个月后、几天后的日期

17 篇文章 0 订阅

获取N个月后的日期: 

var months=6;//几个月后
    var effectDate='2018年8月31日';//任意时间
    var time=effectDate.replace(/年/g,"-").replace(/月/g,"-").replace(/日/g,"");
    var newTime=monthChange(time,months);//获取的几个月后时间
    console.log(newTime);
    /*获取n个自然月后的日期
    * date:当前任意日期
    * num:月数
    * */
    function monthChange(date,num) {
            var newDate=new Date(date);
            var year = newDate.getFullYear();
            var month = newDate.getMonth() + num;//获取当前月份的日期
            if (month>11){
                for(var i=0,j=Math.floor(month/12);i<j;i++){
                    year++;
                    month -= 12;
                }
            }
            month=parseInt(month+1);
            if(month<10){
                month="0"+month;
            }
            var date2=new Date(year,month,0);//新的年月
            var day1=newDate.getDate();
            var day2=date2.getDate();
            if(day1>day2){  //防止+6月后没有31天
                day1=day2;
            }
            return year + '年' + month + '月' + day1+ '日';
        }

获取N天后的日期:

var date='2018-09-09';//当前时间或选取时间
var n=7;//选取时间要向前推进的天数
var date1 = new Date(date);
        date1.setDate(date.getDate() - n);//获取七天前date
        let year1 = date1.getFullYear();
        let month1 = ((date1.getMonth() + 1 < 10 ? '0' + (date1.getMonth() + 1) : date1.getMonth() + 1));
        let myDate1 = (date1.getDate() < 10 ? '0' + date1.getDate() : date1.getDate());
        let h1 = (date1.getHours() < 10 ? '0' + date1.getHours() : date1.getHours()) + ':00:00';
        let startDate = year1 + "-" + month1 + "-" + myDate1 + " " + h1;
console.log(startDate);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值