支付订单详情页30分钟倒计时

初始化调用:
  this.countDown();
  //倒计时:先获取时间间隔的秒数 之后把相差的秒数转为即时的时分秒
  countDown() {
    //开始的时间
    var starttime = "2022/04/07 14:04:00";
    //时间转时间戳
    var start = new Date(starttime.replace(/-/g, "/")).getTime();
    //表示之前的时间加30分钟
    var endTime = start + 30 * 60000;
    var date = new Date(); //现在时间
    var now = date.getTime(); //现在时间戳
    //先获取时间间隔的秒数 之后把相差的秒数转为即时的时分秒
    var allTime = endTime - now;
    var m, s;
    if (allTime > 0) {
      m = Math.floor((allTime / 1000 / 60) % 60);
      s = Math.floor((allTime / 1000) % 60);
      setTimeout(() => {
        this.setState({
          countdown: `请在${m}分${s}秒内尽快付款`,
        });
        this.countDown();
      }, 1000);
    } else {
      //订单已失效
      console.log("已截止");
      this.setState({
        state: 4,
        countdown: "您未成功支付该笔订单,订单已关闭",
      });
    }
  }

你可能感兴趣的:(支付订单详情页30分钟倒计时)