【发布时间】: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