尝试使用片刻JS格式化日期时的无效日期
当我尝试将此日期格式31/12/2012
格式化为moment(data).format('ll')
并且收到无效的日期返回时,我的日期无效。
答案 0 :(得分:4)
您必须使用moment(String, String)
intead moment(String)
,因为您的输入既不是ISO 8601也不是RFC 2822格式。
当从字符串创建片刻时,我们首先检查字符串是否与已知的ISO 8601格式匹配,然后检查字符串是否与RFC 2822 Date time格式匹配,然后再降至{{1}的后退如果找不到已知格式。
警告:浏览器支持解析字符串is inconsistent。因为没有关于应该支持哪种格式的规范,所以在某些浏览器中有效的功能在其他浏览器中不起作用。
要解析除ISO 8601字符串以外的任何内容的一致结果,您应该使用String + Format。
这是一个实时样本:
new Date(string)
var data = '31/12/2012'
console.log( moment(data, 'DD/MM/YYYY').format('ll') );