移动端时间格式化兼容问题 (IOS)

505 阅读1分钟

在做项目(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", 不管用"-"或“/”分隔,都能成功转换出时间,但会加上时区的差值

建议:为了避免这个问题,建议让后台返回的是时间戳