需求场景:
业务是需要根据时间查询数据,并且进入页面,时间选择器默认显示的值是根据续费月数与优惠券到期时间计算续费后到期时间。
问题描述
因为是选取时间范围,我前端使用的是两个iview的DateTimePicker:
写的续费月数改变方法:
如上图所示,赋予初始值。理论上这样就行了,但是问题出现了。前端打印出格式没有任何问题:
点击确认保存后给后端数据格式发生 改变:
原因分析:
通过操作,观察时间选择器显示和传参时间,传给后端的是GMT格式;而上面的代码设置的默认时间传给后端的是UTC格式。GMT和UTC本身就差八小时,典型的时区问题。
解决方案:
新增一个时间转换方法,代码如下:
在点击确认调取接口时:
这样传给DateTimePicker的绑定值就是GMT格式的时间,传给后台也就是GMT格式
另外关于这个八小时时差问题在网上99%的解决方案是加一个format="yyyy-MM-dd HH:mm:ss"参数,但是使用过没有任何作用。