Moment 时间返回 UTC 时间而不是本地时间

Moment time is returning UTC time instead of local time

目前我正在开发一个项目,当用户单击“从应用程序下载报告”按钮时创建 excel 报告。除了正在下载的文件名外,一切正常。

问题是当我们从美国(夏令时的 CST 时间)检查时,假设如果用户在 9:00 下午 11 月 26 日下载报告,文件名将变为 2020 年 11 月 27 日。我们正在 node.js 应用程序中使用 moment 来获取时间。

const date = moment().format('LL');

有人可以知道我在哪里失踪。如果我是正确的,moment() 函数将 return 本地时间而不是 UTC 时间。但似乎正在获取 UTC 时间而不是本地时间。

我们需要改用 moment().local() 吗?

任何帮助将不胜感激。

提前致谢。

我想你应该在 URL:

中传递用户时区偏移量
// -300 - (CST with daylight savings)
https://somesite.com/api/report?offset=-300 

并在后端使用 moment.js 更改偏移量,如下所示:

// old versions of a moment.js
const date = moment().zone(offset).format('LL')
// new versions of a moment.js
const date = moment().utcOffset(offset).format('LL')