時間對象和倒計時

1、時間對象函數

  一、在寫一些東西的時候,常常須要獲取 「當前系統的時間對象」spa

      二、要建立一個時間對象,使用new操做符和Date構造函數new Date();對象

      三、返回值:返回表示日期的毫秒數ip

      四、在調用Date構造函數而不傳遞參數的狀況下,新建立的對象自動獲取當前日期和時間字符串

      五、若是想根據特定的日期和時間建立日期對象,必需要傳入參數,ECMAScript提供了兩個方法:get

       (1) Date.parse()方法接收一個表示日期的字符串參數,而後嘗試根據這個字符串返回相應日期的毫秒數。若是傳入Date.parse()方法的字符串不能表示日期,那麼它會返回NaN.後臺

           若是直接把將表示日期的字符串傳遞給Date構造函數,也會在後臺調用Date.parse()。換句話說,下面的兩行代碼是等價的:
           var t = new Date(Date.parse('December 28,2015'));
           var t = new Date('December 28,2015');構造函數

       (2) Date.UTC()方法一樣也返回表示當前日期的毫秒數。數據類型

           參數中,只有前兩個參數(年和月)必須的,若是沒有提供表明月份的參數,則默認爲1;若是其他參數(時、分、秒)都沒提供,則默認爲0,也就是午夜零時 。定時器

           下面的兩行代碼也是等價的:
           var t = new Date(Date.UTC(2015,11,28,15,29,30));   //(注意:月份是基於0開始的,一月是0,二月是1... 以此類推)
           var t = new Date(2015,11,28,15,29,30);             // 注意:這裏是將表示日期的參數直接傳遞給Date構造函數裏,但這行代碼是基於系統設置的本地時區建立的

 

   六、若是你想獲取到其餘的一些信息:(如下全部的 typeof 都是 number數據類型,所以獲得的結果都是數字

    var iYear = myTime.getFullYear();                //  年

    var iMonth = myTime.getMonth()+1;          //  月    注意:getMonth 的一月份是從零開始計算的,所以必需要在後面加1纔會準確。

    var iDate = myTime.getDate();                  //  日

    var iWeek = myTime.getDay();                 //  星期      // 0,1,2,3,4,5,6

      注意:所以數據類型是number,因此星期一顯示出來的是數字1,星期二是數字2,依次類推.... 而星期日顯示的則是數字0;

    var iHours = myTime.getHours();            //  小時

    var iMin = myTime.getMinutes();           //  分鐘

    var iSec = myTime.getSeconds();          //  秒

  七、 對於星期來講,要作一個判斷,讓0等於星期日,讓數字都變成'星期幾'的文字;

    if(iWeek===0)iWeek='星期日';

    if(iWeek===1)iWeek='星期一';

    if(iWeek===2)iWeek='星期二';

    if(iWeek===3)iWeek='星期三';

    if(iWeek===4)iWeek='星期四';

    if(iWeek===5)iWeek='星期五';

    if(iWeek===6)iWeek='星期六';

 

2、定時器:在某必定的時間以內發生一件事,就是定時器(具備時間的概念)。

  var timer = setInterval( 函數、毫秒 );        // 在規定的時間內重複執行

  clearInterval( timer );                                 // 清除

 

  var timer = setTimerout( 函數、毫秒);      // 在規定的時間後只執行一次

  clearTimeout(timer);                                  // 清除

 

3、倒計時

  一、首先要明白什麼的倒計時,將來的時間點(不變的)和 如今的時間點(可變的)的差

    var iNow = new Date();

    // 若是說想找到將來的時間點,new Date 的括號裏是能夠放參數的,設置一個將來的時間點

    // 參數分爲兩種形式: (數字形式和字符串形式,二者選一)

      一、數字形式:new Date(2015,11,24,15,40,30)      // 這裏要記住月份是從0開始的,因此若是這月是12月份的話,寫的時候要寫成11月

    var iNew = new Date(2015,11,24,15,40,30); 

      二、字符串形式:new Date( 'December 24,2015 15:40:30' )  

    var iNew = new Date( 'December 24,2015 15:40:30' ); 

    月份的英文單詞(January、February、March、April、May、June、July、August、September、October、November、December)

    // 求出將來時間點和如今時間點的差:

    var t = Math.floor(iNew-iNow)/1000;      

    注意: iNew-iNow相減以後是以毫秒爲單位的,所以要除以1000,改成以秒爲單位;

       這裏是不能有小數點的存在,因此要用到向下取整Math.floor;

  二、公式:

    倒計時要用到時分秒:1分鐘=60秒,1小時=3600秒,1天=86400秒;

    按照以秒來計算的話:

    天:Math.floor(t/86400);

    時:Math.floor(t/86400/3600);

    分:Math.floor(t/86400%3600/60);

    秒:t%60; 

  三、用字符串拼接起來:

    var str = Math.floor(t/86400) + '天' + Math.floor(t/86400/3600) + '時' + Math.floor(t/86400%3600/60) + '分' + t%60 + '秒';

相關文章
相關標籤/搜索