美文网首页
微信小程序:云函数时区差8小时问题的解决

微信小程序:云函数时区差8小时问题的解决

作者: 我的小小笔尖 | 来源:发表于2021-08-02 10:25 被阅读0次

云函数中的时区是UTC+0,而不是UTC+8。数据字段保存的是 new Date() 值,查询出来默认显示的时间与中国标准时间差8个小时,所以:

  1. 在查询时需要定义时区 timezone: 'Asia/Shanghai'
  2. 页面显示时间时需要转换为本地时间

参考:https://developers.weixin.qq.com/miniprogram/dev/reference/wxs/06datatype.html

页面转换格式
  <wxs module="fn">
    module.exports = {
      formmatDate: function(utc){
        return getDate(utc).toLocaleString()
      }
    }
  </wxs>

  <text>{{fn.formmatDate(record.date)}}</text>
分组统计
      .group({
        _id: {
          date: $.dateToString({
            date: '$date',
            format: '%Y-%m-%d',
            timezone: 'Asia/Shanghai'
          }),
        },
        num: $.sum(1)
      })
按日期查询
    .where(
      _.and([
        {
          openid: openid,
          isDelete: false,
        },
        _.expr(
          $.eq(
            [
              $.dateToString({date: '$date', format: '%Y-%m-%d', timezone: 'Asia/Shanghai'}), 
              dateStr,
            ]
          ),
        )
      ])
    )

网上提到一种设置云函数时区的方法:云开发–云函数–对应的云函数配置环境变量+变量值:TZ+Asia/Shanghai
好像没啥效果

相关文章

网友评论

      本文标题:微信小程序:云函数时区差8小时问题的解决

      本文链接:https://www.haomeiwen.com/subject/wfbdvltx.html