美文网首页
微信小程序:云函数时区差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