首頁 > web前端 > js教程 > JavaScript日期物件常用方法及應用

JavaScript日期物件常用方法及應用

黄舟
發布: 2017-02-28 14:44:57
原創
1541 人瀏覽過

感覺我這個標題寫的很大 

其實日期物件並不常用,應用好像也不多
但是我們有必要了解一些基本的用法

#日期物件

Date日期物件是js原生的建構子
不像陣列、物件什麼的,它沒有對應的常數形式
建立一個日期物件很簡單

var date = new Date();
登入後複製

Date()可以帶參數(字串),指定日期和時間像這樣

console.log(new Date("2016/1/1"));
登入後複製

不帶參數就是使用目前的日期和時間

Date()主要是用來取得目前的時間戳記(距離1970年1月1日的毫秒數)
這個值可以透過日期物件的getTime方法取得

下面看一下日期物件常用的取得方法

  • getFullYear() 取得年份

  • getMonth() 取得月份

  • getDate() 取得天數

  • getDay() 取得星期

  • getHours() 取得小時

  • getMinutes() 取得分鐘

  • #getSeconds() 取得秒

  • getTime() 取得時間戳

要是想設定日期物件就把前面的get都改成set,感覺用不上
要注意的地方就是不要使用getYear(),因為它返回的是距離1900年的年差,沒人用它
還有就是getMonth()方法返回月份是從零開始的,也就是0~11,代表1~12月
getDay()範圍是0~6,0代表星期日
我們來練習一下封裝一個函數列印目前日期資訊
看一下表,今天是16年11月6日18:45

function getCurrentDate(){    var date = new Date();
    console.log('年份:' + date.getFullYear(),                
    '月份:' + (date.getMonth() + 1),                
    '天数:' + date.getDate(),                
    '小时:' + date.getHours(),                
    '分钟:' + date.getMinutes(),                
    '秒数:' + date.getSeconds());
}
getCurrentDate();
登入後複製

控制台列印:

如果不使用new,直接呼叫Date(),傳回的是日期資訊的字串

Date還有一個要提的靜態方法是parse(),與getTime()很像
w3c給出的定義:傳回1970年1月1日午夜到指定日期(字串)的毫秒數
這樣用

應用

其實日期物件應用不多
無非是取得目前日期、效能測試
取得目前日期就直接實例化一個日期對象,然後呼叫方法就行

效能測試就是利用時間戳記/時間截

function loop(){
    for(var i = 0; i < 1000; i++){
        console.log(1);
    }
}var timeStart = new Date().getTime();
loop();var timeEnd = new Date().getTime();
console.log(&#39;程序运行时间:&#39; + (timeEnd - timeStart));
登入後複製

這段程式碼就是我測試loop函數運行了多久

或可以用我在JavaScript單執行緒底層原理中使用的方法

function loop(){
    for(var i = 0; i < 1000; i++){
        console.log(1);
    }
}var timeStart = +new Date();
loop();var timeEnd = +new Date();
console.log(&#39;程序运行时间:&#39; + (timeEnd - timeStart));
登入後複製

效果是一樣的,不過不建議對日期類型使用強制型別轉換
加號相當與把實例化的日期物件隱式轉換轉換成數字
也就是呼叫了Date物件重寫的valueOf()

ES5中新增的日期物件靜態方法now ()就更方便了,直接取得目前時間戳記

function loop(){
    for(var i = 0; i < 1000; i++){
        console.log(1);
    }
}var timeStart = Date.now();
loop();var timeEnd = Date.now();
console.log(&#39;程序运行时间:&#39; + (timeEnd - timeStart));
登入後複製

我們也可以為舊版瀏覽器寫個polyfill(補充程式碼/襯墊程式碼)

if(!Date.now){    Date.now = function(){
        return new Date().getTime();
    }
}
登入後複製

 以上就是JavaScript日期對象常用方法及應用的內容,更多相關內容請關注PHP中文網(www.php.cn)!


#
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板