社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
一、原理说明:
最近,小程序中线上出来一个bug,我检查了代码感觉没问题,最后一查原理安卓和ios关于时间这块有这么个坑:
Android如下:
Date.parse(new Date('2020-06-11 08:00:00'))
ios如下:
Date.parse(new Date('2020/06/11 08:00:00'))
核心:安卓使用“-”连接时间,ios使用“/”连接时间。
二、解决:
在安卓机里面我都能正常显示,苹果的也能显示,只是颜色并不是根据我的要求显示的。在处理其他逻辑的时候失效,不兼容暴露出来。
最初代码:
let pastTamp = obj.gwlastTime,currentTamp = new Date().getTime();
pastTamp = new Date(pastTamp).getTime();
if ((currentTamp - pastTamp) / 1000 / 60 > 7) {
aa = 1;
} else {
aa = 0;
}
更改后代码:
//获取手机的型号
getphonesystem() {
let _this = this;
uni.getSystemInfo({
success: function(res) {
_this.phoneSystem = res.system
}
});
}
let pastTamp = obj.gwlastTime,currentTamp = new Date().getTime();
//调用判断型号的方法
if (_this.phoneSystem.indexOf("iOS") != -1) {
//如果是ios,获取字符串中所有的“-”,并替换成“/”
pastTamp = pastTamp.replace(/-/g, '/');
}
pastTamp = new Date(pastTamp).getTime();
if ((currentTamp - pastTamp) / 1000 / 60 > 7) {
aa = 1;
} else {
aa = 0;
}
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!