1. 问题
天杀的elementui的time-picker,导致我开发的系统出现了一次生产问题,原因竟然是因为组件库的bug!直接上截图。
如图,正常情况下,选择时间后,想要得到的值理应是当天的时间,如图是当年的10月13日,也就是发文的今天。
然而,当我们手动输入值时,得到的值却是当年的1月1日的时间,如图为今年的Jan 01,就是1月1日!
这可把我害惨了,通过日志拿到当时请求的报文发现传的值不对,然而自己却一直复现不了,还以为是代码其他地方把这个值改到了,直到,我在github的elementui库找到了这个issue,[Bug Report] TimePicker 时间选择器,手动输入时间后,默认日期为当年1月1号 #22048。
然后去问了产品当时他的操作,他说他的确开始有输入过,这才破了案。
可以看见上图,现在这个issue还是为Open状态,我在版本更新日志也没找到对这个bug的fix,所以大家开发的时候一定要注意这个问题。
2. 解决
我们的解决方法是用time-picker的editable属性禁用掉手动输入,就让用户只能滑动选择。不过这是因为我们时间急,只是权宜之计。还有其他解决方法,比如只取这个值的时分秒,然后自己手动new Date,获取当天0点的时间戳,再加上返回的时分秒,手动拼一次数据,这样就能防止手动输入时间为1月1日的问题了。