根据momentjs文档toJSON()
生成ISO 8601格式的字符串,moment.defaultFormat
是ISO 8601格式。
考虑到这一点,我希望得到一个有效的日期,但是
moment(moment().toJSON(), moment.defaultFormat, true).toString()
始终返回'无效日期'。
答案 0 :(得分:4)
您是对的,moment().toJSON()
返回ISO 8601格式,但与moment.defaultFormat
不同。
问题在于moment().toJSON()
包含不属于SSS
的小数秒(moment.defaultFormat
令牌)(即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>
&#13;