2016-06-10 106 views
0

服务器给我一个日期格式这样May 04, 2016时刻不格式化这个日期2016年5月4日

var month = moment('May 04, 2016', 'MM-DD-YYYY').format('M') 

month给我4,显然可能要5,它给了我似乎一天,不是这个月。

如何格式化服务器给我的日期以确定使用moment.js的月份?

编辑:

真的不知道为什么我downvoted其实我试过下面的答案,仍然可以得到

enter image description here

+0

*“我实际上尝试了下面的答案,仍然得到”*您已经使用了'MM'。下面的答案(如果你指的是我的)说'MMM'。 [它很重要](http://momentjs.com/docs/#/parsing/string-format/)。 –

+0

我的意思是傻乎乎的,但你是对的。谢谢你们,需要额外的头脑! –

回答

4

当你给moment两个字符串参数the documentation says第二个意思是第一个的格式。 MM-DD-YYYY不是May 04, 2016的格式。的May 04, 2016格式是MMM DD, YYYY

console.log(moment("May 04, 2016", "MMM DD, YYYY").format("M"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>

-1

根据文档,几个月的范围从0到11

因此对于五月,它将返回4.

参考:http://momentjs.com/docs/#/get-set/month/

+0

OP使用'format',而不是'month'。 –

+0

我使用的格式与OP相同,但是文档中明确指出该月的索引从0到11.所以1月:0,feb:1 .. May:4 https://jsfiddle.net/ww96dtwL/1/ – SenthilKumarM

+2

文件清楚地说'月'将返回0-11。但[格式很清楚记录](http://momentjs.com/docs/#/displaying/format/)返回'1-12':*“Month - M - 1 2 ... 11 12” *(因为它是格式化的输出,只有程序员用基于0的数据编写日期,而不是大多数人。) –

0

尝试

VAR月=时刻( '五一04年,2016年', 'MMM-DD-YYYY')格式(。 'MM')

将“MM”更改为“MMM”并将.format('M')更改为格式('MM')。

+1

如果OP因此需要'“5”',.format(“MM”)'不正确。 –

+0

在这个链接说,那个月将返回0-11。和.format('M')正确对不起。 [链接](http://momentjs.com/docs/#/get-set/month/) –

+0

要更正您的答案(“MM”与“M”),您可以使用“编辑”链接。但是,'MMM-DD-YYYY'不是解析'2016年5月4日'的正确格式。建议只删除。 –

相关问题