Momentjs严格格式总是返回'无效日期'
问题描述:
根据momentjs文档toJSON()
生成ISO 8601格式化字符串和moment.defaultFormat
是ISO 8601格式。Momentjs严格格式总是返回'无效日期'
考虑这个帐户我希望得到一个有效的日期,但
moment(moment().toJSON(), moment.defaultFormat, true).toString()
总是返回“无效的日期”。
答
您对,moment().toJSON()
返回ISO 8601格式,但不是moment.defaultFormat
的相同。
问题是moment().toJSON()
包括不是的moment.defaultFormat
部分分数秒(SSS
令牌)(即YYYY-MM-DDTHH:mm:ssZ
)。
moment().toJSON()
输出可被解析:
- 使用
moment(String)
- 使用
moment(String, String)
传递moment.ISO_8601
作为格式参数 - 提供与
toJSON()
输出('YYYY-MM-DDTHH:mm:ss.SSSZ'
)
这里相一致的格式字符串现场示例:
console.log(moment(moment().toJSON(), moment.defaultFormat, true).toString() );
console.log(moment().toJSON());
console.log(moment.defaultFormat);
console.log(moment(moment().toJSON(), 'YYYY-MM-DDTHH:mm:ss.SSSZ', true).toString() );
console.log(moment(moment().toJSON(), moment.ISO_8601, true).toString() );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
是否defaultFormat您的JSON字符串匹配吗? – Icepickle
它适用于momentjs v2.2.1,不适用于以后的版本http://jsfiddle.net/dalinhuang/a6afq07y/ –
@DanielH你在你的小提琴中使用旧版本的momentjs – VincenzoC