当前位置: 首页> 健康> 科研 > el-date-picker设置时间范围

el-date-picker设置时间范围

时间:2025/9/12 0:00:33来源:https://blog.csdn.net/qq_43601059/article/details/140006490 浏览次数:0次

下面这种写法会报错:找不到expirationDate,这是因为涉及到this的指向问题
在普通函数中,this 的上下文并不指向 Vue 组件实例,而是取决于函数的调用方式或者是否使用了严格模式

<el-date-pickerclass="date-icon-common"v-model="expireTime"type="date"value-format="yyyy-MM-dd HH:mm:ss"placeholder="选择日期":picker-options="pickerOptions">
</el-date-picker>
data() {return {expirationDate: '2024-06-30 00:00:00', // 到期时间pickerOptions: {disabledDate(date) {// 禁用过去日期if (date.getTime() < Date.now() - 8.64e7) {return true;}// 禁用期限日期之后的日期console.log('打印找不到this'this)const expirationDateTimestamp = new Date(this.expirationDate).getTime();if (date.getTime() > expirationDateTimestamp) {return true;}return false;}}}
}

✅两种改法
1️⃣使用箭头函数: 箭头函数不会创建自己的 this 上下文,而是从定义时的外层作用域继承 this。修改你的 disabledDate 方法为箭头函数可以解决这个问题,如下所示:

data() {return {expirationDate: '2024-06-30 00:00:00',pickerOptions: {disabledDate: (date) => {// 禁用过去日期if (date.getTime() < Date.now() - 8.64e7) {return true;}// 获取期限日期的时间戳const expirationDateTimestamp = new Date(this.expirationDate).getTime();// 禁用期限日期之后的日期if (date.getTime() > expirationDateTimestamp) {return true;}return false;}}};
}

2️⃣使用计算属性

data() {return {expirationDate: '2024-06-30 00:00:00'};
},
methods: {dateDisabled(date) {// 禁用过去日期if (date.getTime() < Date.now() - 8.64e7) {return true;}// 获取期限日期的时间戳const expirationDateTimestamp = new Date(this.expirationDate).getTime();// 禁用期限日期之后的日期if (date.getTime() > expirationDateTimestamp) {return true;}return false;}
},
computed: {pickerOptions() {return {disabledDate: this.dateDisabled};}
}
关键字:el-date-picker设置时间范围

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: