Safari、IOS使用new Date()遇到的坑

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

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;

在这里插入图片描述
如此即可解决!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值