微信小程序倒计时——解决IOS系统中new Date().getTime()问题

用setInterval做了一个倒计时的功能

功能代码

methods:{
    timeFormat(param) {
		return param < 10 ? '0' + param : param;
	},
	countDown(endTime) {
		clearInterval(interval);
		var interval = setInterval(() => {
		// 获取当前时间,同时得到活动结束时间数组
		let newTime = new Date().getTime();
		// 对结束时间进行处理渲染到页面
		let obj = null;
		// 如果活动未结束,对时间进行处理
		if (endTime - newTime > 0) {
		let time = (endTime - newTime) / 1000;
		// 获取天、时、分、秒
		let day = parseInt(time / (60 * 60 * 24));
		let hou = parseInt(time % (60 * 60 * 24) / 3600);
		let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
		let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
		obj = {
			day: this.timeFormat(day),
			hou: this.timeFormat(hou),
			min: this.timeFormat(min),
			sec: this.timeFormat(sec)
		};
	} else { // 活动已结束,全部设置为'00'
		obj = {
			day: '00',
			hou: '00',
			min: '00',
			sec: '00'
		};
		clearInterval(interval);
	}
	this.countDownList = obj.day + '天' + obj.hou + '时' + obj.min + '分' + obj.sec + '秒';
	}, 1000);
    }
}

 

但是发现IOS系统中setInterval计时器不能正常使用,在安卓系统均正常,在微信开发者工具以及真机调试时也是正常显示。

排查后发现是Date()的问题,IOS解析时间时无法识别‘-’。

解决方案:把 - 都替换成 / 

const Time = '2020-04-14 23:59' 

原代码 

new Date(Time).getTime()

修改后

new Date(Time.replace(/-/g, "/")).getTime()

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值