本文主要是介绍微信小程序倒计时——解决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()
这篇关于微信小程序倒计时——解决IOS系统中new Date().getTime()问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!