我正在尝试设置" formattedLocalTime"太平洋时间和我的4行代码如下所示。
虽然chrome调试器显示" locTime" as" 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")
答案 0 :(得分:1)
您可以一步完成:
moment.tz(1412144245453, 'America/Los_Angeles').format('MM/DD/YYYY h:mm a')
输出:"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"
答案 1 :(得分:0)
尝试使用:
var formattedLocalTime = locTime.format("MM/DD/YYYY h:mm a")
如果您写下片刻(locTime),那么您的日期时间将转换回当地时间