2017-10-17 85 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>