微信小程序中解决iOS中new Date() 时间格式不兼容
本周寫小程序,遇到的一個bug,在chrome上顯示得好好的時間,一到Safari/iPhone 就報錯 “invalid date”,時間格式為“2019.06.06 13:12:49”,然后利用new Date() 轉換時間戳時,使用微信開發工具、安手機開發版、安手機體驗版都沒問題,ios中無法展示。
猜想,會不會是Safari不支持yyyy-mm-dd / yyyy.mm.dd 這種格式,于是在 safari 瀏覽器測試一波,順便也測試了 “2018-12-10”格式的:
safari 瀏覽器報錯:2018.12.10 11:11:11日期格式
safari 瀏覽器報錯:2018-12-10 11:11:11 日期格式
于是就replace正則替換
let dateStr1 = '2018.12.10 11:11:11'; let dateStr2 = '2018-12-10 11:11:11'; /* 利用正則表達式替換時間中的”-或者.”為”/”即可 */ dateToTimestamp(dateStr) {if (!dateStr) {return ''}let newDataStr = dateStr.replace(/\.|\-/g, '/')let date = new Date(newDataStr);let timestamp = date.getTime();return timestamp }this.dateToTimestamp(dateStr1) this.dateToTimestamp(dateStr2) 復制代碼后來為了驗證自己的想法,上stackoverflow上查查,看到了幾個類似的問題,這里挑一個有代表性的給大家看看:
Safari JS cannot parse YYYY-MM-DD date format?
大概的意思是說,在執行new Date( string ) 的時候,不同瀏覽器會采用不同的parse,目前chrome兩種格式都支持,而Safari只支持yyyy/mm/dd。
PS:最近在開始做移動端開發,后面應該會遇到了不少兼容性問題,不斷總結,希望以后少踩坑!
轉載于:https://juejin.im/post/5cf8d3baf265da1b916383f3
總結
以上是生活随笔為你收集整理的微信小程序中解决iOS中new Date() 时间格式不兼容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 迎接新年 - 我的音乐盒(三)
- 下一篇: 700元就可买到同事行踪?安全专家:属实