收藏
回答

云函数的日期如何比较?

框架类型 问题类型 终端类型 AppID 基础库版本
小程序 Bug 工具 wx9cfe22dace4ef7f3 2.3.0

- 当前 Bug 的表现(可附上截图)






- 预期表现

数据表中有一条crttime =  2018.11.06的记录

查询条件是tbl_shop中大于当天日期, 即日志中 2018-10-21 的数据

按理应该返回这条11.06的记录的.但是实际没有得到这条数据


- 复现路径

  1. 建立一条数据, date型.

  2. 输入一条记录. 日期大于今天即可

  3. 建立云函数,  查找表中大于今天的数据

  4. 输出


- 提供一个最简复现 Demo

const _ = db.command

member.month_shop =0

tbl_shop.where({

crttime: _.gte(firstday)

}).get().then(res=>{

console.log(res)

})


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

4 个回答

  • 强15851218976
    强15851218976
    2018-11-09

    这个问题卡到我现在还没睡。date对象也比较不了,date字符串也比较不了,是不是_.gt()不能做这样的比较阿?希望官方能重视这个问题。

    2018-11-09
    有用 1
    回复 3
    • 星辰
      星辰
      2018-11-10

      云函数坑到怀疑人生.

      2018-11-10
      回复
    • 强15851218976
      强15851218976
      2018-11-10回复星辰

      是啊,我最后只能把用timestamp

      2018-11-10
      回复
    • lyt.
      lyt.
      2022-08-21
      2022年了,还是有这个问题
      2022-08-21
      1
      回复
  • 半寸灰
    半寸灰
    2018-10-22

    云函数的

    db.serverDate

    new  Data()


    都是UTC时间   也就是和北京时间相差8个小时

    自己取时出来再加8个小时就是北京时间了


    db.serverDate

    在云数据后台显示的是转后的  北京时间   但API获取的还是UTC时间

    2018-10-22
    有用 1
    回复 3
    • 星辰
      星辰
      2018-10-22

      测试数据相差不止8个小时, 所以我想应该还不是这个UTC时间的问题.

      2018-10-22
      回复
    • 半寸灰
      半寸灰
      2018-10-22回复星辰

      我是用  new  Data()的  

      db.serverDate

      坑多 不敢用

      自测哈哈哈

      2018-10-22
      回复
    • 落叶飘飘
      落叶飘飘
      2022-06-15
      真的是相差8小时,用时间的相等去查,本地调试没问题,云函数一跑根本查不到,云函数上生成时间后再减去8小时再与数据库里对比就可以查到了,之前用大于等于要查数据的前一天去查的,现在找到原因了直接相等即可。另外还需要判断是本地调试还是云函数服务端运行,不然本地调试就查不到数据了。。。cloud.getWXContext().ENV!==‘local‘; 要注意本地调试的时候不能修改默认的环境,不然就不等于local了,
      2022-06-15
      回复
  • shallwe99
    shallwe99
    2018-11-06

     官方能不能给个demo,直接在command.lt(new Date(数字))也不行。

    2018-11-06
    有用
    回复
  • Gavin
    Gavin
    2018-10-21

    同样对此问题存在疑惑

    2018-10-21
    有用
    回复
登录 后发表内容