2017-10-17 88 views
1

根据momentjs文档toJSON()生成ISO 8601格式化字符串和moment.defaultFormat是ISO 8601格式。Momentjs严格格式总是返回'无效日期'

考虑这个帐户我希望得到一个有效的日期,但

moment(moment().toJSON(), moment.defaultFormat, true).toString() 

总是返回“无效的日期”。

+0

是否defaultFormat您的JSON字符串匹配吗? – Icepickle

+0

它适用于momentjs v2.2.1,不适用于以后的版本http://jsfiddle.net/dalinhuang/a6afq07y/ –

+0

@DanielH你在你的小提琴中使用旧版本的momentjs – VincenzoC

回答

4

您对,moment().toJSON()返回ISO 8601格式,但不是moment.defaultFormat的相同。

问题是moment().toJSON()包括不是的moment.defaultFormat部分分数秒(SSS令牌)(即YYYY-MM-DDTHH:mm:ssZ)。

moment().toJSON()输出可被解析:

这里相一致的格式字符串现场示例:

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>