记一次前端中国标准时间转换为yyyy-MM-dd类型
最新在工作中遇到一个常见的需求,按照时间区间进行查询。这里使用的是Elementui模板,但是获取过后的时间是一个中国标准时间并不是想要的yyyy-MM-dd类型,时间类型如下:
我的js处理如下:
let searchDjmObj = _self.searchDjm;
let searchPmsjObj= _self.searchPmsj;
let startTime = '';
let endTime = '';
// 因为split是分割string类型的,所以如果不是string类型要先转换
if(searchPmsjObj != '' && searchPmsjObj != null) {
if(typeof searchPmsjObj != 'string') {
searchPmsjObj = searchPmsjObj.toString();
}
// 分割出来开始时间和结束时间,一个数组
var result = searchPmsjObj.split(",");
// 获取开始时间
let startDate = result[0];
// 获取结束时间
let endDate = result[1];
// 将string类型时间转换为date类型,因为只有时间类型才可以使用getFullyear,getMonth等
let startDateTemp = new Date(startDate);
// 将string类型时间转换为date类型,因为只有时间类型才可以使用getFullyear,getMonth等
let endDateTemp = new Date(endDate);
console.log(startDateTemp);
console.log(endDateTemp);
// 将剥离的时间年转换为string
let yyyys = startDateTemp.getFullYear().toString();
// 将剥离的时间月转换为string
let months = (startDateTemp.getMonth() + 1).toString();
// 将剥离的时间日转换为string
let days = startDateTemp.getDate().toString();
// 判断月和日是否是小于10,小于10的补0
startTime = yyyys +"-"+(months[1]?months:"0" + months[0]) + "-" + (days[1] ? days:"0"+days[0]);
let yyyye = endDateTemp.getFullYear().toString();
let monthe = (endDateTemp.getMonth() + 1).toString();
let daye = endDateTemp.getDate().toString();
endTime = yyyye +"-"+(monthe[1]?monthe:"0" + monthe[0]) + "-" + (daye[1] ? daye:"0"+daye[0]);
那么后台接收就可以使用String了
相对应的sql编写就可以是:
<select id="getDjmInfo" parameterType="String" resultMap="BaseResultMap">
select t.djm,s.* from ymgd.t_djm s left join sde.st_djmdk t on s.bsm = t.xmbsm
where 1=1
<if test="null != djm and '' != djm">
and ((t.djm like concat(concat('%',#{djm}),'%')) or (s.dkmc like concat(concat('%',#{djm}),'%')) or (s.pmjg like concat(concat('%',#{djm}),'%')))
</if>
<if test="null != startTime and '' != startTime and null != endTime and '' != endTime">
and (to_char(s.pmsj,'yyyy-MM-dd') between #{startTime} and #{endTime})
</if>
order by s.pmsj desc
</select>
注意这里要使用#来获取变量不能使用$!
参考链接:
https://www.cnblogs.com/gudi/p/8031219.html