两个日期选择器的联动

让两个独立的日期选择器产生联动:(我这里用的是elmentUI的 DatePicker日期选择器
效果展示:

 

 方案1:
<el-col :span="12">
    <el-form-item label="客服单结单时间">
        <el-date-picker v-model="form.woCompletionTimeStart" placeholder="开始时间" align="right" type="date"
                :picker-options="startPickerOptions" style="float: left; width: 181.5px;">
        </el-date-picker>
        <div class="timeLine"></div>
        <el-date-picker v-model="form.woCompletionTimeEnd" placeholder="结束时间" align="right" type="date"
                :picker-options="endPickerOptions" style=" float: right;width: 181.5px;">
        </el-date-picker>
    </el-form-item>
</el-col>
computed: {
    startPickerOptions() {
      const self = this
      return {
        disabledDate(time) {
          if (self.form.woCompletionTimeEnd) {
            return time.getTime() > new Date(self.form.woCompletionTimeEnd).getTime()
            // new Date(self.form.woCompletionTimeEnd).getTime() 结束时间
            // Date.now() - 8.64e7 // 当前时间的前一天
            // time.getTime()  // 任意时间
          }
        }
      }
    },
    endPickerOptions() {
      const self = this
      return {
        disabledDate(time) {
          if (self.form.woCompletionTimeStart) { // 如果开始时间不为空,则结束时间大于开始时间
            return new Date(self.form.woCompletionTimeStart).getTime() > time.getTime()
          }
        }
      }
    }
  },
方案2:两个日期选择器的联动-简书
<el-form-item label="开始日期:">
  <el-date-picker
     v-model="form.startDate"
     type="date"
     placeholder="选择日期"
     style="width: 100%"
     value-format="yyyy-MM-dd"
     :picker-options="startPickerOptions"
   />
</el-form-item>
<el-form-item label="结束日期:">
  <el-date-picker
    v-model="form.endDate"
    type="date"
    placeholder="选择日期"
    style="width: 100%"
    value-format="yyyy-MM-dd"
    :picker-options="endPickerOptions"
  />
</el-form-item>
  computed: {
    startPickerOptions() {
      const self = this
      return {
        disabledDate(time) {
          if (self.form.endDate) { // 如果结束时间不为空,则小于结束时间
            return new Date(self.form.endDate).getTime() < time.getTime() || time.getTime() < Date.now() - 8.64e7
          } else {
            return time.getTime() < Date.now() - 8.64e7 // 开始时间不选时,结束时间最大值大于等于当天
          }
        }
      }
    },
    endPickerOptions() {
      const self = this
      return {
        disabledDate(time) {
          if (self.form.startDate) { // 如果开始时间不为空,则结束时间大于开始时间
            return new Date(self.form.startDate).getTime() - 8.64e7 > time.getTime()
          } else {
            return time.getTime() < Date.now() - 8.64e7// 开始时间不选时,结束时间最大值大于等于当天
          }
        }
      }
    }
  }

Js双日历控件,在一个网页上同时显示两个日期选择器,写成了封装类,方便使用者调用。同时美化的相当不错。   包括了以下函数:   1、2012——2020年节假日信息(包括节假日前1~3天/后1~3天)   2、格式化数字,不足两位前面补0   3、将日期对象/日期字会串格式化为指定日期字符串   4、将日期字符串格式化为数字   5、获取目标元素针对于文档的位置   6、元素选择器   7、查找元素位置   8、判断目标元素是否包含指定的className      关于一些日历调用的参数说明:Calendar({    id: "#J_date_1", //触发显示日历元素ID    isPopup: !0, //弹出式日历    isPrevBtn: !0, //显示上月按钮    isNextBtn: !0, //显示下月按钮    isCloseBtn: !0, //显示关闭按钮    isHoliday: !0, //节假日特殊显示    isHolidayTips: !0, //显示节假日1~3天/后1~3天信息    isDateInfo: !0, //显示日期信息    isMessage: !0, //有日历提示信息    isCalStart: !0, //标记为开始时间    dateInfoClass: "date-info-start", //开始时间icon样式    range: {mindate: "2011-09-01", maxdate: "2020-12-31"},//限制范围(当天——2020-12-31)    count: 2, //日历个数    monthStep: 1, //切换上下月日历步长    onSelectDate: fnSelectDate, //选择日期回调方法    onClose: fnClose //关闭日历回调方法
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值