概念
js中使用utc時間保存日期和時間,即1970年1月1日零點開始經過的毫秒數保存時間。Date類型是引用類型。
定義
注意新定義一個時間如果什麼都不傳,默認值是創建的時候的當前時間
var now = new Date();
var now = new Date(22334242); // 可以傳入毫秒數初始化
var now = new Date("1/2/2019");// 可以使用字符串作爲參數,此時底層默認調用parse
var now = new Date(2000, 2, 3, 4, 5, 6);// 可以使用字符串作爲參數,此時底層默認調用UTC,但是注意時區問題,使用UTC基於0時區返回,寫在構造函數中直接使用當前時區初始化
alert(now);
構建
- 可以使用字符串構建Date對象 Date.parse()
- 可以使用年月日時分秒構建Date對象 Date.UTC()
var date = Date.parse("1/2/2019"); //獲取的是毫秒數
var now = new Date("1/2/2019"); //這個函數的本質是先調用parse獲取毫秒數,然後構建Date對象
alert(date); // 返回數字
alert(now); // 返回Date字符串
var date = new Date(Date.UTC(2000, 2, 3, 4, 5, 6)); // 2000年2月3日4時5分6秒
alert(date);
注意:
- parse可以使用很多格式的字符串做參數,比如’5/12/2019’,‘January 12,2004’,'2004-04-23T00:00:00’等,不同瀏覽器兼容的日期格式不同
- 如果傳入的字符串不能轉換爲Date則返回NaN
- parse和UTC都返回毫秒數,Date對象可以使用毫秒數進行初始化
- 注意使用UTC和直接在Date構造中填寫UTC函數參數進行初始化的時候時區不同的問題
使用
可以用來輸出一段代碼執行的時間
var start = Date.now();
for(let i = 0; i < 1000; i++){
console.log(i);
}
var end = Date.now();
alert(end - start); // 輸出12,使用了12毫秒
輸出
輸出Date對象可以使用 toString toLocalString valueOf,這幾個方法輸出的值不同的瀏覽器均不同,我們這裏簡單看一下
var date = new Date();
alert(date.toString()); //Tue Dec 03 2019 11:06:04 GMT+0800 (中國標準時間)
alert(date.toLocaleString()); //2019/12/3 上午11:06:04
alert(date.valueOf()); //1575342364419
還有一些格式化的方法,同樣因瀏覽器而異,我們下面列出來,在使用的時候挑選合適的方法進行使用
擴展方法
Date還有一些擴展方法,用於獲取特定的值,比如獲取天,比如獲取月份等,下面列出來使用的時候查詢