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

时间:2022-11-19 00:40:11

背景介绍

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

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

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

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

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

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

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

公布答案

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

日期科普

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

解决方案

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

一步到位。

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

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

最后

请看效果图

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