欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

微信小程序中解决iOS中new Date() 时间格式不兼容

发布时间:2024/5/14 编程问答 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 微信小程序中解决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() 时间格式不兼容的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。