vue推算最近n天的日期,两种方法

1、自己写函数计算(比较麻烦)

//时间推算函数(day:前后n天 0为当天,正值表示未来n天,负值表示过去n天;fmt:时间格式;time:时间(默认当天))
  function recentTime(day, fmt, time) {
    //获取当前时间的毫秒值
    let now = (time ? new Date(time) : new Date()).getTime();
    // 获取前后n天时间
    let recent = new Date(now + day * 24 * 60 * 60 * 1000);

    // key:正则匹配表达式,value:对应的时间、日期
    let fmtObj = {
      'M+': recent.getMonth() + 1, //月份
      'd+': recent.getDate(), //日
      'h+': recent.getHours(), //时
      'm+': recent.getMinutes(), //分
      's+': recent.getSeconds(), //秒
    };
    // 获取匹配年份替换
    if (/(y+)/.test(fmt)) {
      //RegExp.$1 匹配结果,替换成对应的长度。如:yyyy就替换成整个年份2021,yy就替换成后两位21,以此类推
      fmt = fmt.replace(RegExp.$1, (recent.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    for (let key in fmtObj) {
      if (new RegExp(`(${key})`).test(fmt)) {
        //日期,时、分、秒替换,判断fmt是否需要补0,如:yyyy-M-d h:m:s 不补0,yyyy-MM-dd hh:mm:ss 则自动补0
        fmt = fmt.replace(
          RegExp.$1,
          RegExp.$1.length == 1
            ? fmtObj[key]
            : ('00' + fmtObj[key]).substr(('' + fmtObj[key]).length),
        );
      }
    }
    return fmt;
  }

2、引用moment 函数功能强大简单,moment 的其他用法自行百度(推荐)
引入moment

import moment from 'moment';

参数说明:day:推算的日期,不填则默认为当前日期,e:推算的前后天数,正值表示未来的第n天,负值表示之前的第n天

function recentTime(day, e) {
    let fmt = moment(day).subtract(e, 'days').format('YYYY-MM-DD');
    return fmt;
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值