
今天在一个新增功能中遇到了需要校验时间的需求,特此记录一下
首先我们要明白JavaScript中的getTime()方法
getTime()方法返回的值是自1970年1月1日00:00:00的毫秒数
那简单介绍完getTime()方法我们就开始实现在vue中校验时间的需求
第一步,我们校验时给form表单定义校验事件
{{scope.row.taskStartDate}} 至 {{scope.row.taskEndDate}}
第二步,在计算属性computed中定义校验规则,使用validator这个校验器去设定规则,如下代码
computed: { dataRule() { var validateConfirmPassword = (rule, value, callback) => { console.log(this.dataForm.createDate); console.log(this.value[0]); // 为什么是this.value[0],是因为填写任务时间的时候 填写了两个时间 一个起始时间 一个结束时间 我们要用起始时间去做校验 所以获取下标为0的值 var createDate = new Date(this.dataForm.createDate).getTime() var tashDta = new Date(this.value[0]).getTime() console.log(createDate); console.log(tashDta); console.log(createDate - tashDta); // 转化为毫秒数以后 如果(创建时间 - 起始时间)的运算结果大于0的时候 就触发设定的规则 否则就继续往下运行 if ((createDate - tashDta) > 0) { callback(new Error("任务起始时间不能小于创建时间!")); } else { callback(); } callback(); }; return { taskStartDate: [{ validator: validateConfirmPassword, required: true, trigger: "change" }], }; }, },
有不对的地方,请大神多多指教
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)