收藏
回答

真机调试和模拟器查询值不一样,真机忽略另一个字段的限制?

let month0 = myDate.getMonth() + 1;
    if (month0 < 10) {
      month0 = '0'+ (myDate.getMonth() + 1);
    } else {
      month0 = myDate.getMonth() + 1;
    }
    let month1 = myDate.getMonth() + 2;
    if (month1 < 10) {
      month1 = '0'+ (myDate.getMonth() + 2);
    } else {
      month1 = myDate.getMonth() + 2;
    }
    app.globalData.datasys0 = myDate.getFullYear() + '-' + month0 + '-' + myDate.getDate();
    let datasys0 = myDate.getFullYear() + '-' + month0 + '-' + myDate.getDate();//当前日期
    let datasys1 = myDate.getFullYear() + '-' + month1 + '-' + myDate.getDate();//下个月日期
    let datasysstart = myDate.getFullYear() + '-' + month0 + '-' +'0';
    let datasysend = myDate.getFullYear() + '-' + month1 + '-' +'32';
    let gszhanghao0 = app.globalData.userid;
    //var time0 = myDate.toLocaleTimeString();
    //console.log("获取当前日期" , time0);
    //let gsid = app.globalData.userid + app.globalData.datasys
    const _ = db.command
    db.collection('gscanteens').where({
      gszhanghao : gszhanghao0, //真机调试把这个字段的限制给忽略了、、、、、、、、、、、、、、、
      gscttime : _.gt(datasysstart).and(_.lt(datasysend)),  //查询当月和下个月
    }).get({
      successres => {
        console.log(res.data)
        this.setData({    //收集数据到ne中并返回
          ne: res.data
        })
      },
      fail(res) {
        console.log("查询失败", res)
      }
    })


  },

这个是模拟器打印的结果,模拟器打印是正确的。

这个是真机(红米K40和VIVO X9)调试和PC机(acer 笔记本)打印得到的结果:

以下是数据库字段

不知道为什么会这样

回答关注问题邀请回答
收藏

1 个回答

  • 轻风
    轻风
    2022-03-30

    找到原因,是真机调试的时候没有重新登录,程序没有获得全局变量,开发的时候把登录界面放到后面了,测试的时候没有登录页,直接进入主页,得到的账号就是空了。

    谢谢:Mr.Zhao社区技术运营专员

    2022-03-30
    有用 1
    回复
登录 后发表内容