2017-10-17 5 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の一部(つまり、YYYY-MM-DDTHH:mm:ssZである)ではない端数秒(SSSトークン)を含むことです。

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>

    関連する問題