博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序中解决iOS中new Date() 时间格式不兼容
阅读量:6447 次
发布时间:2019-06-23

本文共 955 字,大约阅读时间需要 3 分钟。

本周写小程序,遇到的一个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上查查,看到了几个类似的问题,这里挑一个有代表性的给大家看看:

大概的意思是说,在执行new Date( string ) 的时候,不同浏览器会采用不同的parse,目前chrome两种格式都支持,而Safari只支持yyyy/mm/dd。

PS:最近在开始做移动端开发,后面应该会遇到了不少兼容性问题,不断总结,希望以后少踩坑!

转载于:https://juejin.im/post/5cf8d3baf265da1b916383f3

你可能感兴趣的文章
函数 之装饰器
查看>>
mysql使用学习的帮助文档
查看>>
Apache Rewrite规则详解
查看>>
SQL细小知识点
查看>>
linux系统调用的三种方法
查看>>
bzoj 2818 欧拉函数
查看>>
【cisco探索之路】
查看>>
Python条件语句
查看>>
JavaScript小结
查看>>
python Web开发你要理解的WSGI & uwsgi详解
查看>>
基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境
查看>>
SQL语言:DDL/DML/DQL/DCL
查看>>
swift代理使用
查看>>
代数几何
查看>>
大牛网站
查看>>
Ajax传数据到servlet
查看>>
springMVC和struts2有什么不同?为什么要用springMVC或者struts2?让你实现一个MVC框架大概如何设计?...
查看>>
微信JSApi支付~坑和如何填坑
查看>>
使用 iview Table 表格组件修改操作的显示隐藏
查看>>
招银网络科技笔试题
查看>>