坏消息,new Date()方法在IOS系统中存在null值情况

文章讲述了在开发微信小程序时遇到的新Date()函数在iPhone上无法正确解析YYYY-MM-dd格式的日期问题。解决方案是将日期格式转换为YYYY/MM/dd。作者建议在开发时考虑到不同平台的兼容性,测试应覆盖iOS和Android设备。
摘要由CSDN通过智能技术生成

背景介绍

笔者最近在开发小程序,发现在使用new Date()函数在电脑模拟器上倒是没什么影响能很好实现效果,但是在我的Iphone上看到的效果跟预想有出入。

图为在电脑微信小程序模拟器的效果图,可以看到感觉良好。

图为在世界最好用的手机产品Iphone上的效果,可以看到和模拟器有出入,这个日期生成有问题。

图为笔者使用VConsole打出来的结果,可以看到为null,这个new Date()失败!!!

公布答案

既然事情已经发生,那我们就简单地分析下为什么?

日期科普

形如"YYYY-MM-dd"可以表示日期格式,形如"YYYY/MM/dd"也可以表示日期格式,像这种表示有很多种,你需要知道的一点是,它只是表现日期形式的一种,它并不是日期本身,像从1970年到现在的时间戳也可以表示日期,这些都是日期的表现形式。

解决方案

答案就是IOS系统不支持"YYYY-MM-dd"这种创建格式,你可以把它转成"YYYY/MM/dd"这种格式。

一步到位。

const date2 = new Date(date.replaceAll('-', '/'))

然后啦因为我这个是小项目,我个人不太想引入一些成熟的类库,比如说业界知名的dayJS、monentJS等,所以就自己实现了下,发现有这个问题,就记录分享下,希望你们看了我的文章不要踩坑了,然后测试的话IOS和Android都测试一下吧。

最后

请看效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值