momentjs将字符串mm / yyyy格式更改为yyyy-mm

时间:2017-03-29 07:51:35

标签: javascript date momentjs

我有一个date字符串11/2004通过API和移动设备发送给我,我试图在date字段中显示此内容。

如果我尝试渲染它,我会在控制台上看到以下警告

  

指定值“11/2004”不符合所需格式。   格式是“yyyy-MM”,其中yyyy是四位或更多位数的年份,和   MM是01-12。

所以使用momentjs我认为这应该很容易更改为日期或月份格式,但我正在努力,因为我似乎无法获得我想要的输出。

我尝试了以下代码但是给了我invalid date

moment('11/2004').format('yyyy-MM')

我在这里做错了什么?如何以正确的格式在输入字段上显示日期?我不能将字段类型更改为其他任何内容,因为它是移动设备上的日期选择器字段。

2 个答案:

答案 0 :(得分:1)

您应该使用string-format

创建日期
moment('11/2004', 'MM/YYYY')

然后使用format()函数

显示它
moment('11/2004', 'MM/YYYY').format('YYYY-MM')

答案 1 :(得分:1)

查看documentation on parsing您需要做的事情是使用指定的格式创建您的时刻对象。

moment('11/2004','MM/YYYY')

这会将日期设置为第一个,但将月份和年份设置为指定的日期。

另外,您的格式有误,yyyy应为大写YYYY

所以你的最终代码应该是这样的

moment('11/2004', 'MM/YYYY').format('YYYY-MM')