【问题标题】:Cannot parse month three letter month with locale en [closed]无法使用语言环境解析月份三个字母月份 [关闭]
【发布时间】:2019-01-06 09:03:04
【问题描述】:

我正在尝试使用 Moment.js 解析具有 2018 年 10 月 30 日 19:30 形式的日期。这个格式应该是YYYY dd MMM HH:mm。这不起作用,我已经确定了字符串的 Oct 部分的问题,请参见下面的 sn-p:

console.log('locale: ' + moment.locale());
console.log('\'2018 31 Oct\' valid? ' + moment('2018 31 Oct', 'YYYY dd MMM').isValid());
console.log('\'2018 31\' valid? ' + moment('2018 31', 'YYYY dd').isValid());
<script src="https://momentjs.com/downloads/moment.js"></script>

鉴于语言环境是 en(我知道这是在没有所有语言环境的情况下使用 Moment.js 时得到的)我不明白为什么 2018 31 Oct 无法解析格式为YYYY dd MMM。根据the documentationMMM 是三个字母月份使用的格式。

这里发生了什么我不明白的问题,我该如何解决?

【问题讨论】:

  • 奇怪的是,这行得通:console.log('\'Oct 2018 31\' valid? ' + moment('Oct 2018 31', 'MMM YYYY dd').isValid());
  • 这工作console.log('\'2018 31 Oct\' valid? ' + moment('2018 31 Oct', 'YYYY DD MMM').isValid());
  • 只是对文档的轻微误读。顺便说一句,您可以在 moment 对象上使用 .parseFlags() 以获取可能有助于找出某些内容未解析的原因的详细信息。
  • 谢谢,我的错误是我从 Java 样式格式开始,其中 YYYY 和 DD 都是小写的。

标签: javascript datetime momentjs


【解决方案1】:

dd 是星期几(Su Mo ... Fr Sa),而您需要星期几(DD)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 2012-06-26
    • 2012-07-28
    • 2014-06-03
    相关资源
    最近更新 更多