Moment.js不断返回UTC而不是Local Date

时间:2015-02-19 16:58:08

标签: javascript momentjs

我有希望/假设是一个简单而愚蠢的问题,让Moment.js返回本地日期。

我传递了这个日期/时间字符串: 2015-02-19T06:32:00.001-05:00

使用此代码:

var departureDateTime = "2015-02-19T06:32:00.001-05:00";
moment(departureDateTime).format("YYYY-MM-DD"); // returns 2015-02-19

看起来很正确。但是,如果我使用下面的代码检查时间,它将返回UTC时间,这将导致日期在某一天的某些时间不正确(将来的某一天)。

moment(departureDateTime).format("h:mma")); // 11:32am

我错过了什么?我认为Moment.js的默认值是返回当地时间,所以我很困惑为什么它不会在早上6:32而不是早上11:32返回。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:2)

一种方法:

var dateStr = "2015-02-19T06:32:00.001-05:00";
moment(dateStr).utcOffset(dateStr).format("h:mma")

(从这里:http://momentjs.com/docs/#/manipulating/utc-offset/

编辑:根据K_C确定的文档,预期的方法是使用parseZone

var dateStr = "2015-02-19T06:32:00.001-05:00";
moment.parseZone(dateStr).format('h:mma');