寫在前面:時間是物理學七大常量之一。生活中記錄時間有兩種方式(或者說有兩種計時系統):GMT(格林尼治時間)和UTC(協調世界時間)。 一 創建Date對象 JS中的Date對象只能通過new關鍵字創建。 var now = new Date(); 需要註意的是:若將Date()作為常規函數調用(即 ...
時間是物理學七大常量之一。生活中記錄時間有兩種方式(或者說有兩種計時系統):GMT(格林尼治時間)和UTC(協調世界時間)。
一 創建Date對象
JS中的Date對象只能通過new關鍵字創建。
var now = new Date();
需要註意的是:若將Date()作為常規函數調用(即不加 new
操作符),則只會返回一個表示當地時間的字元串(UTC還是GMT?取決於瀏覽器的實現。),而非 Date
對象。
另外,不像其他的 JavaScript 對象,Date
對象沒有字面量語法。
創建時間對象時可以傳遞參數:
1、 不使用參數
1 var now = new Date();//"Mon Aug 12 2019 16:00:16 GMT+0800 (中國標準時間)"
2、 參數是一個表示時間的字元串
1 var now = new Date(“2019-08-12”); 2 //Thu Aug 12 2019 00:00:00 GMT+0800 (中國標準時間) 3 var now1 = new Date(“2019/08/12”); 4 //Thu Aug 12 2019 00:00:00 GMT+0800 (中國標準時間)
3、 參數是年/月/日/時/分/秒/毫秒
規則如下:
a:年是必須的,月是從0開始,日是從1開始。
b:如果月份超過11,則年份自動增加。
c:如果日超過當月應有天數,則月自動增加
d:時分秒毫秒均是類似。
e:如果參數有預設,則預設是0;
1 var date = new Date(2019,08,12,0,0,0,0); 2 var date1 = new Date(2019,08,32); 3 console.log(date);//Thu Sep 12 2019 00:00:00 GMT+0800 (中國標準時間) 4 console.log(date1);//Wed Oct 02 2019 00:00:00 GMT+0800 (中國標準時間)
4、 參數是一個數字
返回一個1970-01-01 00:00:000至今的毫秒數。
var now = new Date(1565600413336); console.log(now);//Mon Aug 12 2019 17:00:13 GMT+0800 (中國標準時間)
二 Date對象的方法
1、 get類
1 //獲取當前時間: 2 var date = new date();//Mon Aug 12 2019 17:04:13 GMT+0800 (中國標準時間) 3 //獲取年: 4 date.getFullYear();//2019 5 //獲取月: 6 date.getMonth();//07 7 //獲取日: 8 date.getDate();//12 9 //獲取時: 10 date.getHours();//15 11 //獲取分: 12 date.getMinutes();//4 13 //獲取秒: 14 date.getSeconds();//13 15 //獲取毫秒: 16 date.getMilliseconds()//445 17 //獲取1970-01-01 00:00:00至今的毫秒數: 35 date.getTime();//1565600713445
2、 set類
1 //獲取當前時間: 2 var date = new date();//Mon Aug 12 2019 17:04:13 GMT+0800 (中國標準時間) 3 //設置年: 4 date.setFullYear(2018); 5 date.getFullYear();//2018 6 //設置月: 7 date.setMonth(6); 8 date.getMonth();//6 9 //設置日: 10 date.setDate(16); 11 //設置時: 12 date.setHours(14); 13 //設置分: 14 date.setMinutes(03); 15 //設置秒: 16 date.setSeconds(12); 17 //設置毫秒: 18 date.setMilliseconds(0);
3、 獲取時間的字元串表示
1 var date = new Date();//Mon Aug 12 2019 17:22:55 GMT+0800 (中國標準時間) 2 date.toString();//"Mon Aug 12 2019 17:22:55 GMT+0800 (中國標準時間)" 3 date.toLocaleString();//"2019/8/12 下午5:22:55" 4 date.toDateString();//"Mon Aug 12 2019" 5 date.toLocaleDateString();//"2019/8/12" 6 date.toTimeString();//"17:22:55 GMT+0800 (中國標準時間)" 7 date.toLocaleTimeString();//"下午5:22:55"
三 時間對象之間的計算
兩個時間對象相減,得到的是他們相差的毫秒數。
1 var date = new Date(); 2 var newDate; 3 setTimeout(function(){ 4 newDate = new Date(); 5 diff = newDate - date; 6 console.log(diff);//5000 7 },5000);//5s之後給newDate設置時間對象
由於一些我們不可控原因,最終列印的值可能會在5000左右偏差,但不會太大。