【问题标题】:momentjs change string mm/yyyy format to yyyy-mmmomentjs 将字符串 mm/yyyy 格式更改为 yyyy-mm
【发布时间】:2017-03-29 07:51:35
【问题描述】:

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

如果我尝试按原样呈现它,我会在控制台上看到以下警告

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

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

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

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

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

【问题讨论】:

  • 尝试像这样moment('11/2004','MM/YYYY')创建您的时刻日期,也将您的格式更改为YYYY-MM
  • 它是YYYY 而不是yyyy -> momentjs.com/docs/#/parsing/string-format
  • 在解析字符串时,您应该始终提供格式,否则就只能靠运气了。

标签: javascript date momentjs


【解决方案1】:

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

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

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

另外,你的格式不对,yyyy 应该是大写的YYYY

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

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

【讨论】:

    【解决方案2】:

    您应该使用string-format 创建您的日期

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

    然后使用format()函数显示它

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多