收藏
回答

云函数中时间计算与本地为什么不一致?

代码段如下:

const dateFns = require('date-fns')

exports.main = async (event, context) => {
  const now = Date.now()
  const { month = now } = event
  const date = new Date(month)
  log.info({
    now,
    month,
    date
  })
  const stTime = dateFns.startOfMonth(date)
  const endTime = dateFns.endOfMonth(date)
  log.info({
    stTime, endTime
  })
}


本地调试结果如下,所计算的时间范围是 2020.10.1 到 2020.10.31:

云端运行结果如下,计算的时间范围变成了2020.9.1 到 2020.9.30 了:

回答关注问题邀请回答
收藏

1 个回答

  • 哄哄
    哄哄
    2020-12-08

    时区

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


    2020-12-08
    有用 1
    回复 1
    • 鹏宇zero
      鹏宇zero
      2020-12-21
      本地调试,设置环境变量TZ=Asia/Shanghai,但是不生效。还是相差8小时。
      2020-12-21
      1
      回复
登录 后发表内容
问题标签