解決時間戳結合的倒計時功能以天 時 分 秒為單位
阿新 • • 發佈:2021-09-15
今天工作 使用到了用時間戳做倒計時的功能
通過在網上觀看案例 理清了自己的思路
我做的專案需求是完成一個抽獎活動的倒計時 抽獎活動開啟的時間是每週六的上午十點
整理到了思路
1.首先我們需要獲取當前登入的時間和時間戳
new Date(); //獲取當前具體時間
newDate().getTime();//獲取當前時間戳
2.我們需要獲取當前是周幾 為了方便我們做接下來的為週六定位
myDate.getDay();//獲取當前是周幾
3.計算出一天的時間戳
24 * 60 * 60 * 1000; //一天的時間戳
4.運用之前獲取的周幾來求出週六十點的時間戳
// 做完發現了一個問題 在這裡做出了修改 需要獲取登入當天0點的時間戳 於是在這裡獲取了一下登入當天0點的時間戳 let nowstart = new Date(new Date().toLocaleDateString()).getTime(); // ("當天0點的時間戳"); let furtureSaturdayTimes = nowstart + (6 - week) * dayLongTime + 10 * 60 * 60 * 1000;
// 週六十點的時間戳furtureSaturdayTime 一天的時間戳 dayLongTime ;
5.我們用週六十點的時間戳 - 當前的時間戳 獲得的時間戳轉化成天時分秒就可以了
週六十點的時間戳 - 當前的時間戳/1000就是我們需要的時間戳了 6.對獲得的時間戳進行換算 程式碼如下this.day = Math.floor(diffSecond / 86400); this.hour = Math.floor((diffSecond % 86400) / 3600); this.minute = Math.floor(((diffSecond % 86400) % 3600) / 60); this.second = Math.floor(((diffSecond % 86400) % 3600) % 60);
// diffSecond 為相差的秒數
7.給我們換算好的方法加上定時器~
// 倒計時定時器
currentTime() {
setInterval(this.getDiffTime, 500);
},
8.不要忘記 清除定時器哦
beforeDestroy() {
if (this.getDiffTime) {
clearInterval(this.getDiffTime); // 在Vue例項銷燬前,清除時間定時器
}