Javascript實現時間倒計時

來源:互聯網
上載者:User

在本人最近製作的一個Demo中,需要在頁面上實現時間倒計時功能。在參考網上一些現有代碼的基礎上,形成了一套相容各種瀏覽器的時間倒計時代碼。代碼如下:

 1  function DateDiff(startTime,latestTime) {
2 var aDate, oDate1, oDate2;
3 var ihours, imin, isec;
4
5 aDate = latestTime.split("-");
6 oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
7 if (isNaN(oDate1) == true) {
8 var tempTime = aDate[2].split(' ');
9 var time = tempTime[1].split(':');
10 oDate1 = new Date(aDate[0], aDate[1], tempTime[0], time[0], time[1], time[2]);
11 }
12
13 aDate = startTime .split("-");
14 oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
15 if (isNaN(oDate2) == true) {
16 var tempTime = aDate[2].split(' ');
17 var time = tempTime[1].split(':');
18 oDate2 = new Date(aDate[0], aDate[1], tempTime[0], time[0], time[1], time[2]);
19 }
20
21 ihours = parseInt((oDate1 - oDate2) / 1000 / 60 / 60);
22 imin = parseInt(((oDate1 - oDate2) - ihours * 3600 * 1000) / 1000 / 60);
23 isec = parseInt(((oDate1 - oDate2) - ihours * 3600 * 1000 - imin * 1000 * 60) / 1000);
24
25 return ihours + "小時" + imin + "分鐘" + isec + "秒";
26 }

代碼本身沒有什麼特別的地方,但是有一點需要注意:像IE*,Chrome瀏覽器都可以將yyyy-MM-dd形式的string 轉換為正確的時間。而蘋果的Safari瀏覽器卻特立獨行,不能識別。在這種情況下,如果想將某字串轉換為時間,需利用 new Date("年份","月份","日","小時","分鐘","秒")方式來解決。經過驗證,此代碼可以在IE*、Chrome、Safari瀏覽器下正確執行(firefox的特性幾乎和Chrome一樣,估計在firefox環境下此代碼也能正確執行,但沒有經過實際驗證)。
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.