vue常用的时间限制

1.选中前后两个月

通过使用element-ui组件库中的时间选择器

1.picker-options对时间进行限制

 2.根据自己的需求进行条件的判断,现在这里判断的是只能选择当月和上个月

2.选中周,月,季节,年

// 设置其他时间
const setTime = (type: string) => { //选中的是周,月,季,年
  //state.timeCard.itmeActive = type;
  let now = new Date();
  let year = new Date().getFullYear();
  let time = [];
  if (type == "week") {
    // 周
    let datOfWeek = now.getDay();
    let Monday = new Date();
    let Sunday = new Date();
    if (datOfWeek > 0) {
      Monday = Monday.setDate(Monday.getDate() - datOfWeek + 1);
      Sunday = Sunday.setDate(Sunday.getDate() - datOfWeek + 7);
    } else {
      Monday = Monday.setDate(Monday.getDate() - 6);
    }
    time = [
      moment(Monday).format("YYYY-MM-DD"),
      moment(Sunday).format("YYYY-MM-DD"),
    ];
  } else if (type == "month") {
    // 月
    let currentMonthStart = new Date(now.getFullYear(), now.getMonth(), 1);
    let currentMonthEnd = new Date(now.getFullYear(), now.getMonth() + 1, 0);
    time = [
      moment(currentMonthStart).format("YYYY-MM-DD"),
      moment(currentMonthEnd).format("YYYY-MM-DD"),
    ];
  } else if (type == "quarter") {
    // 季
    let start;
    let end;
    let jd = Math.ceil((now.getMonth() + 1) / 3);
    start = new Date(now.getFullYear(), (jd - 1) * 3, 1);
    end = new Date(now.getFullYear(), jd * 3, 0);
    time = [
      moment(start).format("YYYY-MM-DD"),
      moment(end).format("YYYY-MM-DD"),
    ];
  } else if (type == "year") {
    //年
    let start;
    let end;
    start = new Date(now.getFullYear(), 0, 1);
    end = new Date(now.getFullYear(), 11, 31);
    time = [
      moment(start).format("YYYY-MM-DD"),
      moment(end).format("YYYY-MM-DD"),
    ];
  }
  //state.search.time = [time[0] + " 00:00:00", time[1] + " 23:59:59"];
  //getData(); 掉接口

};

3.选中本学期,本学年

// 设置其他时间
const setTime = (type: string) => {
  //state.timeCard.itmeActive = type;
  let now = new Date();
  let year = new Date().getFullYear();
  let time = [];
  if (type == "semester") {
    /**
     * 学期
     *  01.01-03.01             03.01-09.01           09.01-12.31
     * 上一年09.01-当前年03.01   当前年03.01-当前年09.01    当前年09.01-下一年03.01
     */
    let start;
    let end;
    if (now < new Date(year + "-03-01")) {
      start = new Date(year - 1 + "-09-01");
      end = new Date(year, 2, 0);
    } else if (
      (now > new Date(year + "-03-01") || now == new Date(year + "-03-01")) &&
      now < new Date(year + "-09-01")
    ) {
      start = new Date(year + "-03-01");
      end = new Date(year, 8, 0);
    } else if (
      now > new Date(year + "-09-01") ||
      now == new Date(year + "-09-01")
    ) {
      start = new Date(year + "-09-01");
      end = new Date(year, 2, 0);
    }
    time = [
      moment(start).format("YYYY-MM-DD"),
      moment(end).format("YYYY-MM-DD"),
    ];
  } else if (type == "year") {
    /**
     * 学年
     * 小于09.01                 大于09.01
     * 上一年09.01-当前年09.01   当前09.01-下一年09.01
     */
    let start;
    let end;
    if (now < new Date(year + "-09-01")) {
      start = new Date(year - 1 + "-09-01");
      end = new Date(year, 8, 0);
    } else {
      start = new Date(year + "-09-01");
      end = new Date(year + 1, 8, 0);
    }
    time = [
      moment(start).format("YYYY-MM-DD"),
      moment(end).format("YYYY-MM-DD"),
    ];
  }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值