壞消息,new Date()方法在IOS系統(tǒng)中存在null值情況
背景介紹
筆者最近在開發(fā)小程序,發(fā)現(xiàn)在使用new Date()函數(shù)在電腦模擬器上倒是沒什么影響能很好實(shí)現(xiàn)效果,但是在我的Iphone上看到的效果跟預(yù)想有出入。
圖為在電腦微信小程序模擬器的效果圖,可以看到感覺良好。

圖為在世界最好用的手機(jī)產(chǎn)品Iphone上的效果,可以看到和模擬器有出入,這個(gè)日期生成有問題。

圖為筆者使用VConsole打出來的結(jié)果,可以看到為null,這個(gè)new Date()失?。。。?/p>

公布答案
既然事情已經(jīng)發(fā)生,那我們就簡(jiǎn)單地分析下為什么?
日期科普
形如"YYYY-MM-dd"可以表示日期格式,形如"YYYY/MM/dd"也可以表示日期格式,像這種表示有很多種,你需要知道的一點(diǎn)是,它只是表現(xiàn)日期形式的一種,它并不是日期本身,像從1970年到現(xiàn)在的時(shí)間戳也可以表示日期,這些都是日期的表現(xiàn)形式。
解決方案
答案就是IOS系統(tǒng)不支持"YYYY-MM-dd"這種創(chuàng)建格式,你可以把它轉(zhuǎn)成"YYYY/MM/dd"這種格式。
一步到位。
const date2 = new Date(date.replaceAll('-', '/'))然后啦因?yàn)槲疫@個(gè)是小項(xiàng)目,我個(gè)人不太想引入一些成熟的類庫(kù),比如說業(yè)界知名的dayJS、monentJS等,所以就自己實(shí)現(xiàn)了下,發(fā)現(xiàn)有這個(gè)問題,就記錄分享下,希望你們看了我的文章不要踩坑了,然后測(cè)試的話IOS和Android都測(cè)試一下吧。
最后
請(qǐng)看效果圖

評(píng)論
圖片
表情
