1. 问题描述
在业务需求中,有关于时间的需求也是很常见的。比如展示当下时间、计算指定日期后的时间等等。
在开发时就遇到这么一个需求:
根据后端返回的时间获取其中月份
假设后端返回的时间为2022-04-1 10:10:10,然后根据这个数据获取月份:
new Date('2022-04-1 10:10:10').getMonth()+1; // 4
在chrome、安卓均没问题,但是在Safari、IOS遇到了问题,结果为NAN

2. 产生原因
因为js的new Date()对于Safari、IOS有兼容问题
3. 解决办法
修改日期的格式,使用正则替换-。
如:
let regDate = '2022-04-1 10:10:10'.replace(/-/g,"/")
new Date(regDate).getMonth()+1;

如此即可解决!
在JavaScript开发中,遇到一个日期处理的兼容性问题,即在Chrome和安卓上正常,但在Safari和iOS上,尝试从'2022-04-110:10:10'获取月份时返回NaN。原因是Safari不支持这种日期格式。解决办法是使用正则表达式将日期中的短横线替换为斜杠,如'regDate='2022-04-110:10:10'.replace(/-/g, /)',再创建新的日期对象,从而确保在所有平台上的正确解析。
566

被折叠的 条评论
为什么被折叠?



