背景介绍
笔者最近在开发小程序,发现在使用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都测试一下吧。
最后
请看效果图