一個付款剩餘時間倒計時的功能

今天在作一個支付界面倒計時功能時碰到以下問題:
點擊提交訂單跳轉到確認訂單(支付)頁面,在頂部有一個倒計時,與此同時,接口返回有建立訂單時間字段,根據此字段實現倒計時vue

實現思路:vuex

  1. 將後臺獲取的時間使用vuex儲存,調用:self.$store.state.subOrder.created_at獲取到
  2. 將後臺獲取的時間使用Date.parse方法(此方法能夠返回 1970/1/1 午夜距離該日期時間的毫秒數。)轉化爲一個int數值,而後加上倒計時時間(900秒),獲得endTime,而後獲取當前時間,用endTiem減去當前時間,獲得剩餘時間,而後經過Math.floor逐個算出還剩幾分幾秒。

上代碼:this

computedLastPayTime() {
      let self = this;
      setInterval(function() {
        let createTime = Date.parse(self.$store.state.subOrder.created_at) / 1000;
        let endTime = createTime + 900;
        let clientTime = Date.parse(new Date()) / 1000;
        let lastTime = endTime - clientTime;
        let int_minute;
        if(lastTime > 0){
          int_minute = Math.floor(lastTime/60);
          lastTime -= int_minute * 60;
          self.lastPayTime = int_minute+'分'+ lastTime +'秒'
        } else {

        }
      },1000); 
    }

知識總結:code

  • let clientTime = Date.parse(new Date()) / 1000;
  • int_minute = Math.floor(lastTime/60);
    lastTime -= int_minute * 60;逐個算出分、秒
  • setInterval(code,millisec)計時器,每隔millisec毫秒執行code
相關文章
相關標籤/搜索