element-ui周选择器选择第几周

本文展示了如何在 Vue.js 中使用 Element UI 的日期选择器组件来选择特定的周,并提供了初始化日期、获取选中周数以及计算日期范围的方法。通过设置 type='week' 和 @change 事件,可以实现周选择功能,并根据选中的周来更新显示的开始和结束日期。

<template>

  <div class="test-box">

    <span>每周</span>

    <el-date-picker

      :clearable="false"

      v-model="valuetime"

      :format="'yyyy-MM 第' + startdata + '周'"

      @change="weekChange"

      value-format="yyyy-MM-dd"

      class="inp"

      size="medium"

      type="week"

      placeholder="请选择"

    ></el-date-picker>

 

    <div @click="chakan">111</div>

    {{ starttimeone }}---{{ starttimetwo }}

  </div>

</template>

 

<script>

export default {

  data() {

    return {

      startdata: "",

      valuetime: "",

      starttimeone: "",

      starttimetwo: "",

      value1: "",

    };

  },

  created() {

    this.getDay();

  },

  methods: {

    chakan() {

      console.log(this.value1);

    },

    // 初始化日期

    getDay() {

      let date = new Date();

      console.log(date);

      let year = date.getFullYear();

      let month = date.getMonth() + 1;

      let day = date.getDate();

      if (month < 10) {

        month = "0" + month;

      }

      if (day < 10) {

        day = "0" + day;

      }

      let nowDay = year + "-" + month + "-" + day;

      this.startdata = this.getWeekInMonth(new Date(nowDay));

      this.valuetime = year + "-" + month + "-" + day;

    },

    weekstartone(date) {

      console.log(date);

      let year = date.getFullYear();

      let month = date.getMonth() + 1;

      let day = date.getDate();

      if (month < 10) {

        month = "0" + month;

      }

      if (day < 10) {

        day = "0" + day;

      }

      let nowDay = year + "-" + month + "-" + day;

      console.log(nowDay);

      this.starttimeone = nowDay;

    },

    weekstarttwo(date) {

      console.log(date);

      let year = date.getFullYear();

      let month = date.getMonth() + 1;

      let day = date.getDate();

      if (month < 10) {

        month = "0" + month;

      }

      if (day < 10) {

        day = "0" + day;

      }

      let nowDay = year + "-" + month + "-" + day;

      this.starttimetwo = nowDay;

    },

    weekChange(val) {

      if (val) {

        this.startdata = this.getWeekInMonth(new Date(val));

        let time1 = Date.parse(new Date(this.valuetime));

        let onetime = new Date(time1 - 3600 * 1000 * 24 * 1);

        let twotime = new Date(time1 + 3600 * 1000 * 24 * 5);

        

        this.weekstartone(onetime);

        this.weekstarttwo(twotime);

      }

    },

 

    // 根据日期判断是月的第几周

    getWeekInMonth(t) {

      if (t == undefined || t == "" || t == null) {

        t = new Date();

      } else {

        var _t = new Date();

        _t.setYear(t.getFullYear());

        _t.setMonth(t.getMonth());

        _t.setDate(t.getDate());

 

        var date = _t.getDate(); //给定的日期是几号

 

        _t.setDate(1);

        var d = _t.getDay(); //1. 得到当前的1号是星期几。

        var fisrtWeekend = d;

        if (d == 0) {

          fisrtWeekend = 1;

          //1号就是星期天

        } else {

          fisrtWeekend = 7 - d + 1; //第一周的周未是几号

        }

        if (date <= fisrtWeekend) {

          return 1;

        } else {

          return 1 + Math.ceil((date - fisrtWeekend) / 7);

        }

      }

    },

  },

};

</script>

 

<style  scoped="scoped">

.test-box {

  background: #ffffff;

  height: 31.25rem;

  padding: 1.875rem 0 0 1.875rem;

}

.inp {

  margin: 0 0 0 0.625rem;

}

</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值