记一次前端中国标准时间转换为yyyy-MM-dd类型

记一次前端中国标准时间转换为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
原文地址:https://www.cnblogs.com/clover-forever/p/13542042.html