Moment.js返回错误的日期

Pan*_*ong 11 javascript datetime momentjs

我正试图利用这种格式将时间转换为2013年10月29日的日期时间

2013-10-29T00:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做

moment('2013-10-29T00:00:00.000Z').format("MMM Do, YYYY")
Run Code Online (Sandbox Code Playgroud)

将于2013年10月28日返回,届时将于2013年10月29日返回

如果您对如何解决此问题有一些想法,请告诉我.谢谢

Jef*_*rey 12

如果你想在utc中使用时间,请使用:

moment.utc('2013-10-29T00:00:00.000')
Run Code Online (Sandbox Code Playgroud)

正如@MattJohnson指出的那样,使用moment构造函数会将其转换为本地时间.相反(如果您不想使用该utc方法),您可以替换Zwith +0.请参阅字符串日期/时间的选项http://momentjs.com/docs/#/parsing/string-format/


kal*_*ley 5

您可以通过执行以下操作来调整时区设置:

moment('2013-10-29T00:00:00.000Z').zone(0).format("MMM Do, YYYY");
Run Code Online (Sandbox Code Playgroud)

小提琴

继续并添加 Matt 的建议,因为它更具语义。

moment('2013-10-29T00:00:00.000Z').utc().format("MMM Do, YYYY");
Run Code Online (Sandbox Code Playgroud)