"TypeError: value.getTime is not a function"

 


TypeError: value.getTime is not a function (elementUI报错转载 )_element UI

首先说一下我使用的实际场景

html代码:

TypeError: value.getTime is not a function (elementUI报错转载 )_字符串_02

 

 

js代码:

TypeError: value.getTime is not a function (elementUI报错转载 )_element UI_03

 

首先说明出现原因,elementUI的日期选择器【el-date-picker】在加上格式 

 

value-format="yyyy-MM-dd" format="yyyy-MM-dd"

 

和校验规则时

{ type: 'date', required: true, message: '请选择日期', trigger: 'change' }

 

会出现顶上问题,结合网络上各路大神的解决方案,实践得出,

解决方案如下:

校验规则 【type: 'date'】改为【type: 'string'】

 

// 原因可能是:elementUI自带的格式转换后会将绑定值转为字符串,而校验规则中的【type: 'date'】已经不匹配,至于它的报错是因为转换为字符串,不是date对象所以没有getTime这个方法了。(说是可能呢,是因为是个人推理见解,具体专业原因还要再探讨)

TypeError: value.getTime is not a function (elementUI报错转载 )_vue.js_04

 

(时间选择器【el-time-picker】也有同样问题)

 

如果对改为string不放心,可以设置 :editable="false"



<el-date-picker


v-model="temp.PurchaseDate"


:editable="false"


type="date"


value-format="yyyy-MM-dd"


format="yyyy-MM-dd"


placeholder="选择日期"/>


校验规则:



PurchaseDate: [{ type: 'string', required: true, message: '不能为空', trigger: 'change' }]


这样用户输入的值必定是通过程序选中的值。


但其实必要,指定type="date"后,测试发现,手动输入的值都会被转换为指定的日期格式。


 


树立目标,保持活力,gogogo!