1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 微信小程序中解决iOS中new Date() 时间格式不兼容

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

时间:2022-11-06 21:14:14

相关推荐

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

本周写小程序,遇到的一个bug,在chrome上显示得好好的时间,一到Safari/iPhone 就报错 “invalid date”,时间格式为“.06.06 13:12:49”,然后利用new Date() 转换时间戳时,使用微信开发工具、安手机开发版、安手机体验版都没问题,ios中无法展示。

猜想,会不会是Safari不支持yyyy-mm-dd / yyyy.mm.dd 这种格式,于是在 safari 浏览器测试一波,顺便也测试了 “-12-10”格式的:

safari 浏览器报错:.12.10 11:11:11日期格式

safari 浏览器报错:-12-10 11:11:11 日期格式

于是就replace正则替换

let dateStr1 = '.12.10 11:11:11';let dateStr2 = '-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:最近在开始做移动端开发,后面应该会遇到了不少兼容性问题,不断总结,希望以后少踩坑!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。