2016-06-10 104 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日'的正確格式。建議只刪除。 –

相關問題