element日期组件时间范围选择限制

导读:本篇文章讲解 element日期组件时间范围选择限制,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前言

element中的日期组件在管理系统中用的非常多,在一些必要的场景下,我们可能会对用户所选的时间范围做区间限制,下面介绍几个常用限制时间范围的方法,其实主要是通过 picker-options 属性来限制可选择的时间区间。

1.只能选择今天及今天之后的日期

<template>
  <div>
    <el-date-picker v-model="timeDate" type="daterange" range-separator="至" start-placeholder="开始日期"
      end-placeholder="结束日期" value-format="yyyy-MM-dd" :picker-options="pickerOptions">
    </el-date-picker>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        timeDate: "",
        pickerOptions: {
          disabledDate(time) {
            return time.getTime() < Date.now() - 8.64e7; //只能选择今天及今天之后的日期
            //return time.getTime() < Date.now() - 8.64e6; //只能选择今天之后的日期,今天的日期也不能选
          }
        },
      }
    },
  }
</script>

在这里插入图片描述

2.只能选择今天及今天之前的日期

<template>
  <div>
    <el-date-picker v-model="timeDate" type="daterange" range-separator="至" start-placeholder="开始日期"
      end-placeholder="结束日期" value-format="yyyy-MM-dd" :picker-options="pickerOptions">
    </el-date-picker>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        timeDate: "",
        pickerOptions: {
          disabledDate(time) {
            return time.getTime() > Date.now() - 8.64e6; //只能选择今天及今天之前的日期
            // return time.getTime() > Date.now() - 8.64e7; //只能选择今天之前的日期,连今天的日期也不能选
          }
        },
      }
    },
  }
</script>

在这里插入图片描述

3.只能选择三个月之前到今天的日期

<template>
  <div>
    <el-date-picker v-model="timeDate" type="daterange" range-separator="至" start-placeholder="开始日期"
      end-placeholder="结束日期" value-format="yyyy-MM-dd" :picker-options="pickerOptions">
    </el-date-picker>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        timeDate: "",
        pickerOptions: {
          disabledDate(time) {
            let curDate = (new Date()).getTime();
            let three = 90 * 24 * 3600 * 1000;
            let threeMonths = curDate - three;
            return time.getTime() > Date.now() || time.getTime() < threeMonths;
          }
        }, //只能选择三个月之前至今天的日期
      }
    },
  }
</script>

同理,如果想要调整为60天前、30天前或者7天前时间只需要将 “let three = 90 * 24 * 3600 * 1000” 中的90修改为需要的时间节点即可。

在这里插入图片描述

4.快捷选择日期区间

<template>
  <div>
    <el-date-picker v-model="timeDate" type="daterange" range-separator="至" start-placeholder="开始日期"
      end-placeholder="结束日期" value-format="yyyy-MM-dd" :picker-options="pickerOptions">
    </el-date-picker>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        timeDate: "",
        pickerOptions: {
          shortcuts: [{
            text: '最近一周',
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
              picker.$emit('pick', [start, end]);
            }
          }, {
            text: '最近一个月',
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
              picker.$emit('pick', [start, end]);
            }
          }, {
            text: '最近三个月',
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
              picker.$emit('pick', [start, end]);
            }
          }]
        },
      }
    },
  }
</script>

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/79403.html

(0)
小半的头像小半

相关推荐

半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!