今天在作一個支付界面倒計時功能時碰到以下問題:
點擊提交訂單跳轉到確認訂單(支付)頁面,在頂部有一個倒計時,與此同時,接口返回有建立訂單時間字段,根據此字段實現倒計時vue
實現思路:vuex
vuex
儲存,調用:self.$store.state.subOrder.created_at
獲取到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