微信小程序中的日期格式在Android和iOS真机下兼容性问题的坑
发布于 4 年前 作者 yangxu 647 次浏览 来自 分享

问题提出

Android和iOS在日期格式上的处理方式有所不同,这个不同也影响到小程序的相关日期时间函数,最常用的应该是new Date()了。如下代码:

  1. date=new Date(‘2020-01-16 22:00:00’).getTime();

上面这行代码在Android和开发者工具(windows/mac)以及开发者工具的真机调试模式(iOS/Android)都不会有问题,但是一上到体验版或者正式版的iOS上手机你获取到的数据就不是你想要的值了!

原因分析

因为iOS只支持2020/01/01 这种日期格式,不支持2020-01-01这样的格式,而现在很多后端处理日期的格式是2020-01-01,发送过来的,或者自己小程序前端生成的也是这种格式,new Date()就会出现兼容性问题。

解决方法

直接替换大法吧,把-换成/,封装成一个自己的方法来new Date()吧。具体代码不用我写你也会的。

总结

这个问题前天一个社区的朋友发了一个相关的帖子,最后查实就是这个原因导致。但是解决这个问题的过程花费了太多时间。因为这个问题很难查出问题所在,因为他在开发者工具和安卓机,以及开发者工具的「真机调试」模式下都不会出现,隐藏得很深。

1 回复

var reg = /-/g;

time = time && thime.rplace(reg,'/')

回到顶部