在做项目(vue移动端、微信小程序)的时候遇到 IOS时间格式化“NAN“问题,现在来总结一下
接口返回的数据是 createdDate="2023-12-16 20:20:21"
iphone手机是不能对这种格式的时间进行格式化,需要把 - 改成 /,也就是"2023/12/16 20:20:21"
<p>创建时间<span v-text="new Date(detail.createdDate).format('yyyy-MM-dd hh:mm:ss')"></span></p>
该方式在Android显示正常,在IOS显示NaN
将格式化改成 new Date(detail.createdDate).format('yyyy/MM/dd hh:mm:ss'),就都显示正常
或者 detail.createdDate.replace(/-/g, "/");
【补充】
1、经苹果手机测试,如果"只有日期不含时间的字符串"转换日期时,不管用“-”还是用“/”分隔都能顺利转换成日期,如果含“时间”,即必须要用“/”分隔;
2、如果时间字符串包含“T”和"Z", 不管用"-"或“/”分隔,都能成功转换出时间,但会加上时区的差值
建议:为了避免这个问题,建议让后台返回的是时间戳