原生js實(shí)現(xiàn)節(jié)日時(shí)間倒計(jì)時(shí)功能
知識(shí)要點(diǎn)
1.實(shí)現(xiàn)原理:
用結(jié)束時(shí)間-當(dāng)前時(shí)間=時(shí)間差
當(dāng)前時(shí)間每過(guò)1秒時(shí)間差自然也就少了1秒
所以要1秒更新一次當(dāng)前時(shí)間就達(dá)到了倒計(jì)時(shí)的效果
2.需要注意的就是時(shí)間之間的轉(zhuǎn)換和對(duì)得出數(shù)值的處理
3.用到的方法:
obj.getTime() //換算成毫秒 Math.floor() //把小數(shù)點(diǎn)向下舍入結(jié)果取一個(gè)整數(shù) 50%24 // 這是對(duì)數(shù)值求余的方法,意思是 假如有50個(gè)小時(shí),一天24個(gè)小時(shí) 這個(gè)得出的結(jié)果就是 余數(shù)是2
具體的數(shù)值的運(yùn)算處理完整代碼里有詳細(xì)的注釋
完整代碼
注:代碼附帶顯示當(dāng)前時(shí)間的標(biāo)準(zhǔn)格式以及倒計(jì)時(shí)天數(shù)
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>demo</title>
<style>
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
address,cite,dfn,em,var{font-style:normal;}
code,kbd,pre,samp{font-family:courier new,courier,monospace;}
ul,ol{list-style:none;}
a{text-decoration:none;}
a:hover{text-decoration:none;}
sup{vertical-align:text-top;}
sub{vertical-align:text-bottom;}
legend{color:#000;}
fieldset,img{border:0;}
button,input,select,textarea{font-size:100%;}
table{border-collapse:collapse;border-spacing:0;}
.clear{clear: both;float: none;height: 0;overflow: hidden;}
</style>
</head>
<body>
<div id="time"></div>
<br/>
<div id="day"></div>
<br/>
<div id="tm"></div>
<script type="text/javascript">
//在頁(yè)面加載完后立即執(zhí)行多個(gè)函數(shù)完美方案。
function addloadEvent(func){
var oldonload=window.onload;
if(typeof window.onload !="function"){
window.onload=func;
}
else{
window.onload=function(){
if(oldonload){
oldonload();
}
func();
}
}
}
addloadEvent(showTime);
addloadEvent(day);
addloadEvent(tb);
//在頁(yè)面加載完后立即執(zhí)行多個(gè)函數(shù)完美方案over。
//天時(shí)秒分倒計(jì)時(shí)
function tb(){
var myDate=new Date();//獲取當(dāng)前時(shí)間
var endtime=new Date("2018,1,1");//獲取結(jié)束時(shí)間
//換算成秒 小數(shù)點(diǎn)向下舍入取整
var ltime=Math.floor((endtime.getTime()-myDate.getTime())/1000);
//console.log(ltime)
//換算成天 小數(shù)點(diǎn)向下舍入取整
var d=Math.floor(ltime/(24*60*60));
//換算成小時(shí)取去掉天數(shù)的余數(shù)(也就是小時(shí)) 小數(shù)點(diǎn)向下舍入取整
var h=Math.floor(ltime/(60*60)%24);
//換算成分鐘取去掉小時(shí)的余數(shù)(也就是分鐘) 小數(shù)點(diǎn)向下舍入取整
var m=Math.floor(ltime/60%60);
//換算成分鐘取去掉分鐘的余數(shù)(也就是秒) 小數(shù)點(diǎn)向下舍入取整
var s=Math.floor(ltime%60);
document.getElementById("tm").innerHTML="距2018年元旦還有:"+d+"天"+h+"小時(shí)"+m+"分鐘"+s+"秒";
if(ltime<=0){
document.getElementById("tm").innerHTML="元旦快樂(lè)!";
clearTimeout(tb);
}
setTimeout(tb,1000);
}
//當(dāng)秒數(shù)為個(gè)位數(shù)時(shí)前面+字符串0
function checkTime(i){
return i<10? "0"+i:""+i;
}
//當(dāng)前時(shí)間標(biāo)準(zhǔn)格式
function showTime(){
var myDate=new Date();//獲取當(dāng)前時(shí)間
var year=myDate.getFullYear();//獲取年份
var month=myDate.getMonth()+1;//獲取月份是0-11的數(shù)字所以+1
var date=myDate.getDate();//日
var day=myDate.getDay();//
var h=myDate.getHours();//小時(shí)
var m=myDate.getMinutes();//分鐘
var s=myDate.getSeconds();//秒
checkTime(m);
checkTime(s);
//console.log(day)
var week="日一二三四五六".charAt(day);
document.getElementById("time").innerHTML=year+"年"+month+"月"+date+"日"+"星期"+week+h+":"+m+":"+s;
setTimeout(showTime,1000);
}
//倒計(jì)時(shí)天數(shù)計(jì)算
function day(){
var myDate=new Date();//獲取當(dāng)前時(shí)間
var endtime=new Date("2018,1,1");//獲取結(jié)束時(shí)間
//先換算成毫秒再相減就是時(shí)間差,再除以一天的毫秒數(shù)結(jié)果是帶有小數(shù)點(diǎn)的,用math方法進(jìn)一位取整
var ltime=Math.ceil((endtime.getTime()-myDate.getTime())/(24*60*60*1000));
document.getElementById("day").innerHTML="距2018年元旦還有:"+ltime+"天";
}
</script>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
- JS實(shí)現(xiàn)針對(duì)給定時(shí)間的倒計(jì)時(shí)功能示例
- js實(shí)現(xiàn)倒計(jì)時(shí)效果(小于10補(bǔ)零)
- 原生js實(shí)現(xiàn)倒計(jì)時(shí)--2018
- js實(shí)現(xiàn)短信發(fā)送倒計(jì)時(shí)功能(正則驗(yàn)證)
- js實(shí)現(xiàn)5秒倒計(jì)時(shí)重新發(fā)送短信功能
- JavaScript利用Date實(shí)現(xiàn)簡(jiǎn)單的倒計(jì)時(shí)實(shí)例
- JS 倒計(jì)時(shí)實(shí)現(xiàn)代碼(時(shí)、分,秒)
- 簡(jiǎn)單易用的倒計(jì)時(shí)js代碼
- js代碼實(shí)現(xiàn)點(diǎn)擊按鈕出現(xiàn)60秒倒計(jì)時(shí)
- js實(shí)現(xiàn)點(diǎn)擊獲取驗(yàn)證碼倒計(jì)時(shí)效果
- JS倒計(jì)時(shí)代碼匯總
- js實(shí)現(xiàn)發(fā)送驗(yàn)證碼后的倒計(jì)時(shí)功能
- JavaScript實(shí)現(xiàn)的商品搶購(gòu)倒計(jì)時(shí)功能示例
相關(guān)文章
javascript之函數(shù)直接量(function(){})()
javascript之函數(shù)直接量(function(){})()...2007-06-06
Javascript SHA-1:Secure Hash Algorithm
Javascript SHA-1:Secure Hash Algorithm...2006-12-12
javascript數(shù)據(jù)類型基礎(chǔ)示例教程
今天總結(jié)一下javascript中的數(shù)據(jù)類型,希望大家能對(duì)javascript數(shù)據(jù)類型基礎(chǔ)有扎實(shí)的掌握,祝大家多多進(jìn)步,早日升職加薪2022-03-03
js中top/parent/frame概述及案例應(yīng)用
top:永遠(yuǎn)指分割窗口最高層次的瀏覽器窗口;parent:包含當(dāng)前分割窗口的父窗口,本文將圍繞js中top、parent、frame進(jìn)行講述及他們的應(yīng)用案例2013-02-02
JavaScript門道之標(biāo)準(zhǔn)庫(kù)
標(biāo)準(zhǔn)庫(kù)指的是js的標(biāo)準(zhǔn)內(nèi)置對(duì)象,是js這門語(yǔ)言本身初始時(shí)提供的在全局范圍的對(duì)象,需要的朋友可以參考下2018-05-05
JavaScript Math.ceil 方法(對(duì)數(shù)值向上取整)
js Math.ceil用于對(duì)數(shù)值向上取整,即得到大于或等于該數(shù)值的最小整數(shù),需要的朋友可以參考下2015-01-01

