當前位置:軟件學堂 > 資訊首頁 > 網(wǎng)絡編程 > 編程其他 > 利用JS計算距離某天的時間

利用JS計算距離某天的時間

2012/11/5 19:16:03作者:佚名來源:網(wǎng)絡

移動端

【實例名稱】

利用JS計算距離某天的時間

【實例描述】

距離某天的時間一般用于提醒特別重大的日子,如建國、結婚紀念日等。本例以建國日為標準,學習如何獲取距離某天的時間。

【實例代碼】

<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>標題頁-學無憂(yzddtk.cn)</title> </head> <body bgcolor="#fef4d9" onLoad="startclock()"> <SCRIPT LANGUAGE="JavaScript"> //基本變量的定義 var timerID; var timerRunning = false; var today = new Date(); var startday = new Date(); var secPerDay = 0; var minPerDay = 0; var hourPerDay = 0; var secsLeft = 0; var secsRound = 0; var secsRemain = 0; var minLeft = 0; var minRound = 0; var minRemain = 0; var timeRemain = 0;

//停止定時器的方法 function stopclock() {         if(timerRunning)                 clearTimeout(timerID);

        timerRunning = false; } //開始定時器的方法 function startclock() {         stopclock();         showtime1(); } //計算時間的方法 function showtime1() { startday = new Date("Oct 20, 1949 00:00 EDT");  //創(chuàng)建初始時間         startday.setYear("1949");           //設置年份         today = new Date();                 //獲取當前時間         secsPerDay = 1000 ;                 //最終轉換為毫秒         minPerDay = 60 * 1000 ;             //每分鐘的毫秒         hoursPerDay = 60 * 60 * 1000;       //每小時的毫秒         PerDay = 24 * 60 * 60 * 1000;       //每天的毫秒

        /* Seconds */         secsLeft = (today.getTime() - startday.getTime()) / minPerDay; //距今天的分鐘數(shù)         secsRound = Math.round(secsLeft);  //四舍五入         secsRemain = secsLeft - secsRound;         secsRemain = (secsRemain < 0) ? secsRemain = 60 - ((secsRound - secsLeft) * 60) : secsRemain = (secsLeft - secsRound) * 60;         secsRemain = Math.round(secsRemain);  //計算取分鐘后剩余的秒數(shù)

        /* 分鐘*/         minLeft = ((today.getTime() - startday.getTime()) / hoursPerDay); //距今天的小時數(shù)         minRound = Math.round(minLeft);  //四舍五入         minRemain = minLeft - minRound; minRemain = (minRemain < 0) ? minRemain = 60 - ((minRound - minLeft) * 60) : minRemain = ((minLeft - minRound) * 60);         minRemain = Math.round(minRemain - 0.495);  //計算取小時后剩余的分鐘數(shù)

        /* 小時 */         hoursLeft = ((today.getTime() - startday.getTime()) / PerDay); //距今天的天數(shù)         hoursRound = Math.round(hoursLeft); //四舍五入         hoursRemain = hoursLeft - hoursRound;         hoursRemain = (hoursRemain < 0) ? hoursRemain = 24 - ((hoursRound - hoursLeft) * 24)  : hoursRemain = ((hoursLeft - hoursRound) * 24);         hoursRemain = Math.round(hoursRemain - 0.5); //計算取天數(shù)后剩余的小時數(shù)

        /* 天 */         daysLeft = ((today.getTime() - startday.getTime()) / PerDay); //距今天的天數(shù)         daysLeft = (daysLeft - 0.5);         daysRound = Math.round(daysLeft); //四舍五入             daysRemain = daysRound;

        /* Time */         day_rem = " 天, "         hour_rem = " 小時, "         min_rem = " 分, "         sec_rem = " 秒"         timeRemain = daysRemain + day_rem + hoursRemain + hour_rem + minRemain + min_rem + secsRemain + sec_rem;         document.up.myTxt.value = timeRemain; //使用文本框輸出內容         timerID = setTimeout("showtime1()",1000); //每隔1秒更新下時間         timerRunning = true; }

</SCRIPT> <FORM NAME="up"> <INPUT TYPE="text" NAME="myTxt" SIZE="47" VALUE=""> </FORM> <P> <FONT SIZE=+1 FACE="Arial"> 距離建國已經(jīng) </FONT> </body> </html>

【運行效果】

 距離某天的時間運行效果

【難點剖析】

本例的重點在于時間(天、時、分、秒)的獲取。在“showtimel”方法中,使用“new Date("Oct 1,1949 00:00EDT”)”創(chuàng)建了一個建國日期對象,又使用“new Date()
獲取當前的日期對象。最后分別獲取兩個時間的天數(shù)、小時,分、秒的間隔,并在文本框中顯示最后的計算結果。

【源碼下載】

為了JS代碼的準確性,請點擊:距離某天的時間 進行本實例源碼下載 

標簽: JS計算  時間