前后端分离开发,Vue+element-ui往后台传日期区间的问题
现在有个需求是根据给定日期的范围查询,第一点想到的是,前台传一个日期区间,后边接收到值以后再SQL语句中使用 Between and 查询。出现的问题:前台使用element的日期组件:它默认返回的是date类型,而且这个组件只返回一个对象,这对后台使用 Between an比较麻烦,这里不再赘述问题的产生原因,直接上代码,亲测有效。首先使用elementui中时间选择器,我使用的是带...
现在有个需求是根据给定日期的范围查询,第一点想到的是,前台传一个日期区间,后边接收到值以后再SQL语句中使用 Between and 查询。
出现的问题:
前台使用element的日期组件:
它默认返回的是date类型,而且这个组件只返回一个对象,这对后台使用 Between an比较麻烦,
这里不再赘述问题的产生原因,直接上代码,亲测有效。
首先使用elementui中时间选择器,我使用的是带快捷选项的那个:
<el-date-picker
v-model="params.date"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions">
</el-date-picker>
然后 使用v-model 绑定值
注意这里的startTime和endTime才是真正后台接受的值,继续看下面就明白了
params: {
startTime: '',
endTime: '',
date: '',
},
这里说一下 element中的中的 type="daterange"默认返回的是一个 String类型的数组,所以你在后台接受时不能使用Date类型去接收**
完成上面两步以后就要发送请求给后台传数据了
:这里需要把上面日期选择器得到的就是 date 转换为字符串,并且给他截取成你需要的字符串,着了我截取后传给后台的值 的格式是: startTime=2010-10-02 endTime=2012-10-3
let startDate=this.params.date.toString();
this.params.startTime=startDate.substring(0,10);
this.params.endTime=startDate.substring(11)
然后后台定义为
private String startTime;
private Srring endTime
这样后台就能获取到日期区间,并且在使用Between and 查询时也可以查询到正确的值,我的这个日期选择器没有做例如 只能选择今天之前的日期这样的处理,需要的话还请自行百度,
更多推荐
所有评论(0)