IOS/iPhone的Safari不兼容Javascript中的Date()问题

问题代码:

var date = new Date('2019-2-2 2:2:2');

现象:

安卓手机正常展示,苹果手机展示NaN

兼容性测试:

chrome正常,IE和safari返回错误"Invalid Date"

原因分析:

想着估计是'2019-2-2 2:2:2'字符串格式的问题,改成'2019/2/2 2:2:2'再测试,结果正常,以为这样应该没问题了,再用手机浏览器继续访问,android正常,iPhone继续报错。

解决:

 var handleDate = "2019/2/2 2:2:2".split(/[- : /]/);

 date = new Date(handleDate[0], handleDate[1]-1, handleDate[2], handleDate[3], handleDate[4], handleDate[5]);

结论:


iPhone中的safari无法解释 YYYY-MM-DD HH:mm:ss 或者YYYY/MM/DD HH:mm:ss这样的时间格式,而谷歌火狐等浏览器对这样的格式做了扩展。
iPhone中的safari所支持的格式为 YYYY,MM, DD,HH,mm,ss。

这里提供一个函数,用来解决关于safari中new Date() 参数是字符串无法解析的问题:

getDate(dateStr) {
    let dateArr = dateStr.split(/[- : \/]/);
    return new Date(dateArr[0], dateArr[1] - 1, dateArr[2], dateArr[3], dateArr[4], dateArr[5]);
  }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值