获取日期范围【昨日、本周、近七天、本月、近31天、近三个月、本季度、近半年、今年、往年、自定义时间】、获取年份列表

获取日期范围的方法

// 获取日期范围
// val传值(yesterday、week、pastWeek、month、pastMonth、threeMonth、quarter、halfYear等)
// val就是传的下面switch中的判断条件
export function getDateRang(val) {
    const now = new Date(); // 当前日期
    const nowDayOfWeek = now.getDay(); // 今天本周的第几天
    const nowDay = now.getDate(); // 当前日
    const nowMonth = now.getMonth(); // 当前月
    const nowYear = now.getFullYear(); // 当前年
    const jd = Math.ceil((nowMonth + 1) / 3);
    let startTime;
    let endTime;
    let customTime = [];
    switch (val) {
      case 'yesterday':  // 昨日
        startTime = new Date(nowYear, nowMonth, nowDay - 1);
        endTime = new Date(nowYear, nowMonth, nowDay - 1);
        break;
      case 'week':       // 本周
        startTime = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
        endTime = new Date(nowYear, nowMonth, nowDay + 6 - nowDayOfWeek);
        break;
      case 'pastWeek':   // 近 7 日
        startTime = new Date(nowYear, nowMonth, nowDay - 6);
        endTime = new Date(nowYear, nowMonth, nowDay);
        break;
      case 'month':      // 本月
        startTime = new Date(nowYear, nowMonth, 1);
        endTime = new Date(nowYear, nowMonth + 1, 0);
        break;
      case 'pastMonth':  // 近 31 日
        startTime = new Date(nowYear, nowMonth, nowDay - 30);
        endTime = new Date(nowYear, nowMonth, nowDay);
        break;
      case 'threeMonth': // 近三个月
        startTime = new Date(nowYear, nowMonth-2, 1);
        endTime = new Date(nowYear, nowMonth, nowDay);
        break;
      case 'quarter':    // 本季度
        startTime = new Date(nowYear, (jd - 1) * 3, 1);
        endTime = new Date(nowYear, jd * 3, 0);
        break;
      case 'halfYear':   // 半年
        startTime = new Date(now.getFullYear(), now.getMonth() - 6, now.getDate());
        endTime = new Date(now.getFullYear(), now.getMonth(), now.getDate());
        break;
      case 'year':       // 今年
        startTime = new Date(nowYear, 0, 1);
        endTime = new Date(nowYear, nowMonth, nowDay);
        break;
      case 'lastYear':   // 往年
        startTime = new Date(nowYear-1, 0, 1);
        endTime = new Date(nowYear-1, 11, 31);
        break;
      default:           // 自定义时间
        customTime = val.split(' - ');
        break;
    }
    return customTime.length ? customTime : [formatDate(startTime), formatDate(endTime)];
}
// 转换日期格式
export function formatDate(date) {
    const y = date.getFullYear();
    let m = date.getMonth() + 1;
    m = m < 10 ? `0${m}` : m;
    let d = date.getDate();
    d = d < 10 ? `0${d}` : d;
    return `${y}/${m}/${d}`;
}

获取年份列表方法

// 获取年份列表【N输入整数字来判断最早年份时间】
export function getYearList(N) {
  const currentYear = new Date().getFullYear();
  let yearList = [];
  for (let i = 0; i < N; i++) {
    yearList.push(currentYear - i);
  }
  return yearList;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值