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

微信小程序开发 同时被 2 个专栏收录
35 篇文章 0 订阅
77 篇文章 1 订阅

一、原理说明:

最近,小程序中线上出来一个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;
}

 

 

 

  • 5
    点赞
  • 1
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 点我我会动 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值