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 + '秒';