計算指定時間到指定時間之間相差多少天、時、分、秒。
節日、活動、商城常用。

原理:
主要使用到時間戳,也就是從1970 年 1 月 1 日 到指定時間的毫秒數。
1. 求出毫秒差 :當兩個時間直接進行運算時,他們自動返回毫秒值。
2. 換算時間單位: 向下取整,把毫秒轉為相應的單位;再把剩下的毫秒取出來轉為下一個需要的單位。
時間戳可以用 Date.pare(時間) 或 時間.getTime() 得到。 前者可以用字符串或時間對象,后者只能使用時間對象。
HTML
<!-- Author: XiaoWen Create a file: 2017-01-03 19:05:26 Last modified: 2017-01-04 14:17:31 Start to work: Finish the work: Other information: --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <input type="text"> <input type="text"> <input type="button" value="開始倒計時"> </body> <script> //js代碼在下面 </script> </html>
JS
var input = document.getElementsByTagName('input'); var timer=null; input[2].onclick=function(){ //clearInterval(timer) timer=setInterval(test,1000); } function test(){ var t1=input[0].value//='2017/01/05 13:31'; if(new Date(t1)-new Date()<=0){ clearInterval(timer); alert('計時完成'); }else{ var d=cd(t1, new Date(), 'd'); var h=cd(t1, new Date(), 'h'); var m=cd(t1, new Date(), 'm'); var s=cd(t1, new Date(), 's'); input[1].value=d+'天'+h+'時'+m+'分'+s+'秒'; } }
JS倒計時函數
/* 2017-01-04 by xw
獲取倒計時 返回值數字
t1 開始時 時間格式 t2 結束時 時間格式 tg 要獲取的值 字符串 d 天 h 時 m 分 s 秒 */ function cd(t1, t2, tg) { //相差的毫秒數 var ms = Date.parse(t1) - Date.parse(t2); var minutes = 1000 * 60; var hours = minutes * 60; var days = hours * 24; var years = days * 365; //求出天數 var d = Math.floor(ms / days); //求出除開天數,剩余的毫秒數 ms %= days; var h = Math.floor(ms / hours); ms %= hours; var m = Math.floor(ms / minutes); ms %= minutes; var s = Math.floor(ms / 1000); //返回所需值並退出函數 switch(tg){ case 'd' : return d; case 'h' : return h; case 'm' : return m; case 's' : return s; } }
