美文网首页
element date-picker解决周数获取问题(ISOW

element date-picker解决周数获取问题(ISOW

作者: 两年半练习程序员 | 来源:发表于2021-10-08 16:50 被阅读0次

    在使用element date-picker组件时发现周数获取问题,如下
    如:当前如期为2021/10/08
    date-picker显示周数为202040

    image.png

    这个周数202040是ISOWEEK周数,而我们后端使用的是非ISOWEEK周数为202041
    如果此时你需要的刚好是ISOWEEK周数,可以直接使用,如果想拿到非ISOWEEK周数,该如何处理~,本以为element会提供,找了半天没找到,有知道的朋友可以下方留言告诉我,感谢!!!

    下面是我获取非ISOWEEK周数的处理方式👇

    实现方案

    通过moment(val).week() 可以获取当前val日期非ISOWEEK周数
    获取非ISOWEEK周数后再赋值给date-picker

    1.安装moment,此处省略
    2.给出dom

    <span id="currentWeekly" >
         <el-date-picker  v-model='dataStart' size="small" :clearable='false' :format='dateFormat'  type="week"  v-on:change='dateStart'></el-date-picker>
    </span>
    

    $('#currentWeekly input')可以拿到date-picker显示值,同样也可以赋值
    3.逻辑处理

      var nowWeek = new Date();
      var dateVue = new Vue({
        el: el,
        data: {
          dataStart: nowWeek,
        },
        created() { },
        mounted(){
          //初始显示当前时间非ISOWEEK周数
          $('#currentWeekly input').val(moment().isoWeekYear() + 'w' + moment(nowWeek).week())
        },
        computed: {
          dateFormat: function (day) {
            return 'yyyy[w]WW';
          },
        },
        watch: {
          dataStart(newVal, oldVal) {
            //change事件中获取date-picker值
            this.$nextTick(() => {
              //获取当前非ISOWEEK周数
              $('#currentWeekly input').val(moment().isoWeekYear() + 'w' + moment(newVal).week())
              
            })
          },
        },
        methods: {
          
        },
      });
    

    注意最终取值不能从dataStart中获取了,使用$('#currentWeekly input').val()获取最终结果

    相关文章

      网友评论

          本文标题:element date-picker解决周数获取问题(ISOW

          本文链接:https://www.haomeiwen.com/subject/jfuxoltx.html