解決IOS微信小程序字符串轉Date值不支持問題

前段時間使用在微信小程序將字符串轉Date值時踩了個坑。

對於YYYY-MM-DD格式的字符串,微信小程序開發工具及其真機調試和 Android 真機都是支持的,唯獨 IOS 真機不支持。

const dateStr = '2020-02-02';
const date = new Date(dateStr);
console.log(date); // IOS => Date(null)

查了一下,發現是IOS不支持這個格式,不過它支持YYYY/MM/DD的格式。
於是我用relace()- 改成 /,代碼如下:

const dateStr = '2020-02-02';
const date = new Date(dateStr.replace(/-/, '/'));
console.log(date); // IOS => Date(null)

又是隻有 IOS 不支持,百思不得其解,經過幾番調試,最後發現是沒有全局替換的原因。replace()中的正則沒有強調全局,在IOS上遇到第一個 - 替換成功就結束了,而其他設備上認爲這就是全局替換。
將代碼改成這樣就解決了:

const dateStr = '2020-02-02';
const date = new Date(dateStr.replace(/-/g, '/'));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章