云函数设置TZ 为 Asia/Shanghai无效的解决方案(云函数时区问题)
官方文档表明Node10以及Node15+版本可用环境变量:TZ 为 Asia/Shanghai,方式获取北京时间。其他Node版本需要借助第三方包,现给出第三方包方案。
云函数:
//1.安装 moment-timezone
npm install moment-timezone
//2.编写云函数
const cloud = require('wx-server-sdk')
const moment = require("moment-timezone")
exports.main = async (event, context) => {
let formatTime=moment().tz("Asia/Shanghai").format()//北京时间 2022-01-24T14:14:50+08:00
let hour=moment().tz("Asia/Shanghai").get('hour') //获取北京时间小时数
let minute=moment().tz("Asia/Shanghai").get('minute') //获取北京时间分数
let second=moment().tz("Asia/Shanghai").get('second') //获取北京时间秒数
return formatTime //result:{} 小程序中以result为载体
}
//构建完毕重新部署上传云函数
js:
//调用云函数
wx.cloud.callFunction({
name: "云函数名称",
}).then(res => {
//res 是云函数调用成功后return出来的值
console.log('云函数调用', res)
}).catch(res => {
console.log(res)
})