ElementUI设定开始和结束时间只能选择同一天内不同的时分秒,且结束时间不能晚于开始时间

需求:1、开始和结束时间只能选择同一天内不同的时分秒;2、结束时间不能晚于开始时间;3、选定某一天后,在该天之前和之后的日期均为不可选状态。

实现思路:将el-date-picker的type设为datetime,通过 picker-options 属性来限制某一天的时间区间且实现在该天之前和之后的日期均为不可选状态;通过onChange事件控制结束时间不能晚于开始时间;

好了,直接上代码:

​
<template>
  <div class="user-container">
    <el-dialog v-dialogDrag :title="title" :visible.sync="addFlag"  :appendToBody="true" width="30%">
        <el-form-item prop="startTime" label="开始时间:"> 
          <el-date-picker v-model="ruleForm.startTime" type="datetime" placeholder="请选择开始时间" default-time="09:00:00" value-format="yyyy-MM-dd HH:mm:ss"/>
        </el-form-item>
        <el-form-item prop="endTime" label="结束时间:"> 
          <el-date-picker v-model="ruleForm.endTime" type="datetime" placeholder="请选择结束时间" default-time="11:00:00" :picker-options="pickerOptionsEnd" @change="endTimeChange" value-format="yyyy-MM-dd HH:mm:ss"/>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="AddOrUpdateClick()">确定</el-button>
          <el-button type="primary" @click="closeFlag">关闭</el-button>
        </el-form-item>
      </el-form>
    </el-dialog>
  </div>
</template>
<script>
import {TickAddOrUpdate} from "@/api/user";
export default {
  name: "containerList",
  data () {
    return {
      pickerOptionsEnd: {
		disabledDate: (time) => {
		  if (this.ruleForm.startTime) {
            const startTime = this.ruleForm.startTime.substr(0,10) + ' 00:00:00';
            const endTime = this.ruleForm.startTime.substr(0,10) +  ' 23:59:59';
			return (
					time.getTime() < new Date(startTime).getTime() || time.getTime() > new Date(endTime).getTime()//确保开始时间和结束时间只能选择某一天的时分秒
						)
					}
				},
			}
    }
  },
}

​

​​​​​​​

用onChange事件控制结束时间不能晚于开始时间:


    //预约时段结束时间 onChange
    endTimeChange(val){
      if(!this.ruleForm.startTime){
        this.$message.warning('请先选择开始时间!');
        this.ruleForm.endTime = '';
        return;
      }
      if(this.ruleForm.startTime>=val){
        this.ruleForm.endTime = '';
        this.$message.warning('结束时间需晚于开始时间!');
        return;
      }
    },

各位友友们,记得点赞收藏呦👍。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值