Moment.js返回错误的日期

时间:2013-10-29 02:40:30

标签: javascript datetime momentjs

我正在尝试使用此格式

将时间转换为2013年10月29日的日期时间
2013-10-29T00:00:00.000Z

但是当我这样做时

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

返回 2013年10月28日,应该返回 2013年10月29日

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

2 个答案:

答案 0 :(得分:12)

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

moment.utc('2013-10-29T00:00:00.000')

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

的选项

答案 1 :(得分:4)

您可以通过以下方式调整时区设置:

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

FIDDLE

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

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