云函数中的时区是UTC+0,而不是UTC+8。数据字段保存的是 new Date() 值,查询出来默认显示的时间与中国标准时间差8个小时,所以:
- 在查询时需要定义时区 timezone: 'Asia/Shanghai'
- 页面显示时间时需要转换为本地时间
参考: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
好像没啥效果
网友评论