js中安卓、ios时间格式转换的不兼容

一、原理说明:

最近,小程序中线上出来一个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使用“/”连接时间。

二、解决:

js中安卓、ios时间格式转换的不兼容_第1张图片

在安卓机里面我都能正常显示,苹果的也能显示,只是颜色并不是根据我的要求显示的。在处理其他逻辑的时候失效,不兼容暴露出来。

最初代码:

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;
}

 

 

 

你可能感兴趣的:(微信小程序开发,JavaScript)