本文实例为大家分享了uniapp实现订单30分钟倒计时的具体代码,供大家参考,具体内容如下倒计时函数如下:
// cm 参数是截至时间-当前时间
// 截至时间是后台返回的数据,当前时间通过new Date() 的方式进行获取
runBack(cm) {
if (cm > 0) {
// 如果时间是超过1分钟,则需要展示的样式是: x分x秒,如果是小于1分钟,则是 00分x秒
cm > 60000

? (this.rocallTime =

(new Date(cm).getMinutes() < 10

? "0" + new Date(cm).getMinutes()

: new Date(cm).getMinutes()) +

":" +

(new Date(cm).getSeconds() < 10

? "0" + new Date(cm).getSeconds()

: new Date(cm).getSeconds()))

: (this.rocallTime =

"00:" +

(new Date(cm).getSeconds() < 10

? "0" + new Date(cm).getSeconds()

: new Date(cm).getSeconds()));
let _msThis = this;
// 使用setTimeout倒计时,1秒后,重复调用此函数。,直到cm =0为止,跳出这个函数
setTimeout(function() {

cm -= 1000;

_msThis.runBack(cm);
}, 1000);
} else {
this.ispay = false
}
},
// cm 参数是截至时间-当前时间
// 截至时间是后台返回的数据,当前时间通过new Date() 的方式进行获取
runBack(cm) {
if (cm > 0) {
// 如果时间是超过1分钟,则需要展示的样式是: x分x秒,如果是小于1分钟,则是 00分x秒
cm > 60000

? (this.rocallTime =

(new Date(cm).getMinutes() < 10

? "0" + new Date(cm).getMinutes()

: new Date(cm).getMinutes()) +

":" +

(new Date(cm).getSeconds() < 10

? "0" + new Date(cm).getSeconds()

: new Date(cm).getSeconds()))

: (this.rocallTime =

"00:" +

(new Date(cm).getSeconds() < 10

? "0" + new Date(cm).getSeconds()

: new Date(cm).getSeconds()));
let _msThis = this;
// 使用setTimeout倒计时,1秒后,重复调用此函数。,直到cm =0为止,跳出这个函数
setTimeout(function() {

cm -= 1000;

_msThis.runBack(cm);
}, 1000);
} else {
this.ispay = false
}
},如果只是一个单纯的倒计时,可以通过setInterval进行处理,
let time = 1800;
setInterval(function(){
time=time-1;
var minute=parseInt(time/60);
var second=parseInt(time%60);
console.log('还剩'+minute+'分'+second+'秒');
},1000);
let time = 1800;
setInterval(function(){
time=time-1;
var minute=parseInt(time/60);
var second=parseInt(time%60);
console.log('还剩'+minute+'分'+second+'秒');
},1000);如果上面的这个倒计时函数放在页面的onload函数中,则每次这个页面加载,比如重新加载小程序的时候,都会进行30分钟倒计时,而我们想要的是,从下订单的那一刻开始进行的30分钟倒计时,所以,还是需要用第一种方式来进行处理。截至日期由后台返给的方式来。以上就是本文的全部内容,希望对大家的学习有所帮助。