element-ui datetime限制日期时间范围

7 篇文章 0 订阅
6 篇文章 0 订阅

效果

demo

代码 [ 日期比较 ]

  <div class="block">
    <span class="demonstration">开始日期:</span>
    <el-date-picker
      v-model="startDate"
      type="date"
      :picker-options="pickerOptionsStart"
      @change="changeEnd"
      placeholder="选择日期"
    ></el-date-picker>
  </div>
  <div class="block" style="margin-right: 50px;">
    <span class="demonstration">结束日期:</span>
    <el-date-picker
      v-model="endDate"
      type="date"
      :picker-options="pickerOptionsEnd"
      @change="changeStart"
      placeholder="选择日期时间"
    ></el-date-picker>
  </div>

export default {
  data() {
    return {
      pickerOptionsStart: {},
      pickerOptionsEnd: {},
      startDate: "",
      endDate: ""
    };
  },
  methods: {
    changeStart() {
      this.pickerOptionsStart = Object.assign({}, this.pickerOptionsStart, {
        disabledDate: time => {
          return time.getTime() > this.endDate;
        }
      });
    },
    changeEnd() {
      this.pickerOptionsEnd = Object.assign({}, this.pickerOptionsEnd, {
        disabledDate: time => {
          return time.getTime() < this.startDate;
        }
      });
    },
  }

代码 [ 日期时间比较 ]

  <div class="block">
    <span class="demonstration">开始时间:</span>
    <el-date-picker
      v-model="startTime"
      type="datetime"
      value-format="yyyy-MM-dd HH:mm:ss"
      placeholder="选择时间"
    ></el-date-picker>
  </div>
  <div class="block">
    <span class="demonstration">结束时间:</span>
    <el-date-picker
      v-model="endTime"
      type="datetime"
      value-format="yyyy-MM-dd HH:mm:ss"
      @change="change"
      placeholder="选择时间"
    ></el-date-picker>
  </div>
export default {
  data() {
    return {
      pickerOptionsStartTime: {},
      pickerOptionsEndTime: {},
      startTime: "",
      endTime: ""
    };
  },
  methods: {
    change(val) {
      console.log(val);
      this.comptime(this.startTime, val)
        .then(res => {
          this.endTime = res;
          console.log("res: ", res);
        })
        .catch(err => {
          this.endTime = err;
          console.log("err: ", err);
        });
    },
    async comptime(beginTime, endTime) {
      if (beginTime) {
        var str = endTime;
        var beginTimes = beginTime.substring(0, 10).split("-");
        var endTimes = endTime.substring(0, 10).split("-");

        beginTime =
          beginTimes[1] +
          "-" +
          beginTimes[2] +
          "-" +
          beginTimes[0] +
          " " +
          beginTime.substring(10, 19);
        endTime =
          endTimes[1] +
          "-" +
          endTimes[2] +
          "-" +
          endTimes[0] +
          " " +
          endTime.substring(10, 19);
        var a = (Date.parse(endTime) - Date.parse(beginTime)) / 3600 / 1000;
        if (a <= 0) {
          this.$message({
            message: "结束时间必须大于开始时间",
            type: "warning"
          });
          return "";
        } else {
          return str;
        }
      } else {
        this.$message({
          message: "请选择开始时间",
          type: "warning"
        });
      }
    },
    changeStartTime() {
      this.pickerOptionsStartTime = Object.assign(
        {},
        this.pickerOptionsStartTime,
        {
          disabledDate: time => {
            return time.getTime() > this.endTime;
          }
        }
      );
    },
    changeEndTime() {
      this.pickerOptionsEndTime = Object.assign({}, this.pickerOptionsEndTime, {
        disabledDate: time => {
          return time.getTime() < this.startTime;
        }
      });
    }
  }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值