关于云函数时区的问题
发布于 18 天前 作者 ofan 3981 次浏览 最后一次编辑是 17 天前 来自 分享

这个问题可能对有些场景不敏感,但是我下面说的场景那是太重要了,那就是签到

由于时区的问题,比如现在是28号,晚上8点,我在29号凌晨签到的时候,由于云函数端采用的是UTC+0 ,所以始终签到的是28号,问题非常重要,

这样就导致始终签到的是28号

官方文档如下

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions/notice.html

时区

云函数中的时区为 UTC+0,不是 UTC+8,在云函数中使用时间时需特别注意。如果需要默认 UTC+8,可以配置函数的环境变量,设置 TZ 为 asia/shanghai

这种情况就造成了下面这个问题

云开发服务器的nodejs时区是utc+0

小程序本地开发的时区是utc+8

同一段云函数在本地调试和云端调试时表现不一致

关于云函数时区,我看了几个帖子,这里整理下

1、云函数中时区问题

https://developers.weixin.qq.com/community/develop/doc/0002eea7518aa0ea5f39ce7fd56c09

2、云开发,获得的日期怎么能成为北京时间的日期?

https://developers.weixin.qq.com/community/develop/doc/000246fdf244305f44397a2e556000

这个帖子里面给出了两个方案,我验证后都没有生效,

3、云开发nodejs环境时区问题

https://developers.weixin.qq.com/community/develop/doc/0008c28e6687d8ddb2b8cf65056400

现在解决了,就是通过上面第三个问题里面的经验,增加环境变量之后,要重新部署云函数,或许要等个半小时。

关于UTC不知道是什么的可以先了解下

https://time.is/UTC

3 回复

+8 +8 +8 [抓重点]

我个人觉得,用设置环境变量的方法不太好。还是云函数里写逻辑的时候自己去+8hour吧。

在小程序云开发的直播课程里面讲过这个问题,具体的请看下面这篇文章

http://i.hackweek.org/tcb/1103.html

回到顶部