PHP时间戳实现倒计时,JavaScript | 时间戳实现倒计时定时器
實現思路:通過date.setHours設置三小時后,并通過data.getTime獲取三小時后的時間戳(從1970年1月1日到現在的毫秒數),之后通過定時器每隔16毫秒調用一次enterFrame函數,此函數用于設置新的時間戳(當前時間),并和三小時后的時間戳相減獲取相差毫秒數,最后轉換為小時、分鐘、秒。
注意,最后記得通過判斷清除定時器。
var targetTime,times,ids;
init();
function init(){
times=document.getElementById("times");
var date=new Date();
// 設置時間3小時后
date.setHours(date.getHours()+3);
// 獲取這個時間的毫秒數,未來的時間戳,這個時間到1970.1.1的毫秒數
targetTime=date.getTime();
// 每16毫秒執行下面的函數
ids=setInterval(enterFrame,16);
}
function enterFrame(){
// 每間隔16毫秒執行這個函數
// 重新獲取當前的時間
var date=new Date();
// 重新獲取當前時間戳 現在到1970.1.1的毫秒數
var time=date.getTime();
// console.log(targetTime-time);//10795679 毫秒
// 用未來到1970.1.1的毫秒數-現在到1970.1.1的毫秒數,這個就是現在到未來的時間差毫秒數
// 這是毫秒變成秒數,就要/1000,做四舍五入,進到秒
time=Math.round((targetTime-time)/1000);
// 10796 秒 1小時3600秒
// 1小時是3600秒 除3600向下取整就是小時數
var hours=Math.floor(time/3600);
// 1小時3600毫秒,除3600取余數,就是除了小時之外的所有秒數,除60是分鐘
var minutes=Math.floor((time%3600)/60);
// 用當前秒-小時所用的秒-分所用的秒,就是剩余的秒數
var seconds=time-hours*3600-minutes*60;
times.innerHTML=(hours<10 ? "0"+hours : hours)+":"+
(minutes<10 ? "0"+minutes : minutes)+":"+
(seconds<10 ? "0"+seconds : seconds);
if(hours+minutes+seconds===0){
clearInterval(ids);
}
}
總結
以上是生活随笔為你收集整理的PHP时间戳实现倒计时,JavaScript | 时间戳实现倒计时定时器的全部內容,希望文章能夠幫你解決所遇到的問題。