微信小程序时间日期插件,api用法。

功能展示:

微信小程序时间日期插件,api用法。_第1张图片

直接上代码了:

js:

data: {
    // 声明一个二维数组用来保存日期和时间。
    multiArray: [['今天', '明天', '3-2', '3-3', '3-4', '3-5'], [0, 1, 2, 3, 4, 5, 6]],
    // 日期和时间的角标。
    multiIndex: [0,0],
  },

/*
 * 获取并整理日期和时间格式
*/

pickerTap: function () {
    var date = new Date();
    var monthDay = ['今天'];
    var hours = [];

    // 月-日
    for (var i = 1; i <= 6; i++) {
      var date1 = new Date(date);
      date1.setDate(date.getDate() + i);
      var md = (date1.getMonth() + 1) + "月" + date1.getDate() + "日";
      monthDay.push(md);
    }

    // 时
    if (this.data.multiIndex[0]  == 0 ) {
      var nowHour = date.getHours()
      if ( nowHour < 7) {
        nowHour = 7
      }
      for (var i = nowHour; i < this.data.maxTime; i++) {
        hours.push(i + ":00 - " + (i + 1) + ":00");
      }
    } else {
      for (var i = this.data.minTime; i < this.data.maxTime; i++) {
        hours.push(i + ":00 - " + (i + 1) + ":00");
      }
    }
    

    var data = {
      multiArray: this.data.multiArray,
      multiIndex: this.data.multiIndex
    };
    data.multiArray[0] = monthDay;
    data.multiArray[1] = hours;
    this.setData(data);
  },

bindMultiPickerColumnChange: function (e) {

    var date = new Date();

    var that = this;

    var monthDay = ['今天'];
    var hours = [];

    var currentHours = date.getHours();

    var data = {
      multiArray: this.data.multiArray,
      multiIndex: this.data.multiIndex
    };
    // 把选择的对应值赋值给 multiIndex
    data.multiIndex[e.detail.column] = e.detail.value;

    // 然后再判断当前改变的是哪一列,如果是第1列改变
    if (e.detail.column === 0) {
      // 如果第一列滚动到第一行
      if (e.detail.value === 0) {
        that.loadData(hours);

      } else {
        that.loadHoursMinute(hours);
      }

      data.multiIndex[1] = 0;

      // 如果是第2列改变
    } else if (e.detail.column === 1) {

      // 如果第一列为今天
      if (data.multiIndex[0] === 0) {
        if (e.detail.value === 0) {
          that.loadData(hours);
        } else {
          that.loadData(hours);
        }
        // 第一列不为今天
      } else {
        that.loadHoursMinute(hours);
      }

    }
    data.multiArray[1] = hours;
    this.setData(data);
  },

  loadData: function (hours) {
    var currentHours = (new Date()).getHours();
    for (var i = currentHours; i < this.data.maxTime; i++) {
      hours.push(i + ":00 - " + (i + 1) + ":00");
    }
  },

  loadHoursMinute: function (hours) {
    // 时
    for (var i = this.data.minTime; i < this.data.maxTime; i++) {
      hours.push(i + ":00 - " + (i + 1) + ":00");
    }
  },

最后向后台传参的格式是:
 expire_solve_time = { "date": that.data.multiArray[0][that.data.multiIndex[0]], "hour": that.data.multiArray[1][that.data.multiIndex[1]] }
expire_solve_time 变量传到后台。

xml:


      
        上门时间  :  
        
            {{multiArray[0][multiIndex[0]]}} {{multiArray[1][multiIndex[1]]}}
        
    

css:自己写吧。

java 后端:

//  接受参数:
JSONObject expire_solve_time = param.has("expire_solve_time") ? param.getJSONObject("expire_solve_time") : null; //{ "date": 今天 || *月*日, "hour":15:00 - 16:00}

整理转换格式:
if ( expire_solve_time != null ) {
            //  调用整理时间的函数
            Map map = handleTime(expire_solve_time);
            if ( map !=null ) {
                if ( map.get("expire_solve_start") !=null ) {
                    try {
                        //  项目使用参数逻辑编写处:
                        customerMatterEntity.setExpireSolveStart((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse(map.get("expire_solve_start")));
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                }
                if ( map.get("expire_solve_end") !=null ) {
                    try {
                        //  项目使用参数逻辑编写处:
                        customerMatterEntity.setExpireSolveEnd((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse(map.get("expire_solve_end")));
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                }
            }
        }

/**
 * 处理接收的时间参数
*/
 public Map handleTime (JSONObject obj) {
        // // 整理时间和日期
        if ( obj ==null || !obj.has("date") || !obj.has("hour")) {
            return null;
        }
        String dateStr = obj.getString("date");
        String hourStr = obj.getString("hour");
        System.out.println(dateStr);
        System.out.println(hourStr);
        String month = "";
        String day = "";
        String hour = "";
        Calendar cal = Calendar.getInstance();
        if ( "今天".equals(dateStr) ) {
            System.out.println("jt");
            month = (cal.get(Calendar.MONTH) + 1)+"";
            day = cal.get(Calendar.DATE) + "";
            System.out.println(month);
            System.out.println(day);
        }else{
            if ((dateStr.indexOf("月") == -1) && (dateStr.indexOf("日") == -1))
                return null;
            month = dateStr.substring(0, dateStr.indexOf("月"));
            day = dateStr.substring( dateStr.indexOf("月")+1 , dateStr.indexOf("日"));
            System.out.println(month);
            System.out.println(day);
        }
        System.out.println(hourStr);
        hour = hourStr.substring(0, hourStr.indexOf(":"));
        int year = cal.get(Calendar.YEAR);

        String startTime = year + "-" + month + "-" + day +" " + hour + ":00:00";
        String endTime = year + "-" + month + "-" + day +" " + ( new Integer(hour)+1 ) + ":00:00";

        System.out.println(startTime);
        System.out.println(endTime);
        Map map = new HashMap();

        map.put("expire_solve_start",startTime);
        map.put("expire_solve_end",endTime);
        return map;
    }

 

你可能感兴趣的:(微信小程序,java)