使用 Moment Timezone 将 UTC 转换为太平洋时间 (javascript)

use*_*143 2 javascript timezone angularjs momentjs

我正在尝试将“formattedLocalTime”设置为太平洋时间,我的 4 行代码如下所示。

虽然 chrome 调试器将“locTime”显示为“Tue Sep 30 2014 16:17:25”,这是我期望的正确值,但最后一行中的 formattedLocalTime 是“09/30/2014 11:17 pm”,这是 UTC 时间而不是我设置的时区(America/Los_Angeles),它应该是“09/30/2014 4:17 pm”(4:17 而不是 11:17)

非常感谢任何建议。

var timestamp = 1412144245453;                      // Tue Sep 30 2014 23:17:25
var utc = moment.tz(timestamp, "Etc/UTC");          // Tue Sep 30 2014 23:17:25 (displayed in chrome debugger)
var locTime = utc.clone().tz("America/Los_Angeles"); // Tue Sep 30 2014 16:17:25 (displayed in chrome debugger)
var formattedLocalTime = moment(locTime).format("MM/DD/YYYY h:mm a")
Run Code Online (Sandbox Code Playgroud)

Mat*_*int 6

您可以一步完成此操作:

moment.tz(1412144245453, 'America/Los_Angeles').format('MM/DD/YYYY h:mm a')
Run Code Online (Sandbox Code Playgroud)

输出:"09/30/2014 11:17 pm"

此外,您错误地评估了该时间戳的时间。在 UTC 中,此时间戳为 2014 年 10 月 1 日上午 6:17:25。对应的太平洋时间确实是2014年9月30日晚上11:17:25。

您可以使用epochconverter.com等网站或在 moment.js 中进行检查,如下所示:

moment.utc(1412144245453).format()   // "2014-10-01T06:17:25+00:00"
Run Code Online (Sandbox Code Playgroud)