亲宝软件园·资讯

展开

uniapp电商小程序实现订单30分钟倒计时

yehaocheng520 人气:0

倒计时函数如下:

// 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);

如果上面的这个倒计时函数放在页面的onload函数中,则每次这个页面加载,比如重新加载小程序的时候,都会进行30分钟倒计时,而我们想要的是,从下订单的那一刻开始进行的30分钟倒计时,所以,还是需要用第一种方式来进行处理。截至日期由后台返给的方式来。

加载全部内容

相关教程
猜你喜欢
用户评论