更新時間:2022年12月06日11時09分 來源:傳智教育 瀏覽次數(shù):
JavaScript中的日期對象用來處理日期和時間。例如,秒殺活動中日期的實時顯示、時鐘效果、在線日歷等。下面將對日期對象進行詳細講解。
日期對象的使用
JavaScript中的日期對象需要使用new Date()實例化對象才能使用,Date()是日期對象的構(gòu)造函數(shù)。在創(chuàng)建日期對象時,可以為Date()構(gòu)造函數(shù)傳入一些參數(shù),來表示具體的日期,其創(chuàng)建方式如下。
<script> // 方式1:沒有參數(shù),使用當前系統(tǒng)的當前時間作為對象保存的時間 var datel = new Date(); //輸出結(jié)果:Wed Nov 17 2021 14:59:56 GMT+0800 (中國標準時間) console.log(datel); // 方式2:傳入年、月、日、時、分、秒(月的范圍是0~11,即真實月份-1) var date2 =new Date(2019,10,16,10, 57,56); //輸出結(jié)果:Sat Nov 16 2019 10:57:56 GMT+0800(中國標準時間) console.log(date2); // 用字符串表示日期和時間 var date3 = new Date('2019-10-16 10:57:56'); // 輸出結(jié)果:Wed Oct 16 2019 10:57:56 GMT+0800(中國標準時間) console.log(date3); </script>
在使用方式1時,其返回的datel對象保存的是對象創(chuàng)建時的時間;使用方式2時,最少需要指定年、月兩個參數(shù),后面的參數(shù)在省略時會自動使用默認值;使用方式3時,最少需要指定年份。另外,當傳人的數(shù)值大于合理范圍時,會自動轉(zhuǎn)換成相鄰數(shù)值(如方式2將月份設為-1表示去年12月,設為12表示明年1月)。
在獲取到日期對象后,直接輸出對象得到的是一個字符串 表示的日期和時間。如果想要用其他格式來表示這個日期和時間,可以通過調(diào)用日期對象的相關方法來實現(xiàn)。日期對象的常用方法分為get和set兩大類,分別如表1和表2所示。
Date對象的常用get方法 |
|
方法 |
作用 |
getFullYear() | 獲取表示年份的4位數(shù)字 |
getMouth() | 獲取月份,范圍為0~ 11 (0表示一月, 1表示二月,依次類推) |
getDate() | 獲取月份中的某一天,范圍1~31 |
getHours() | 獲取小時數(shù),范圍為0~23 |
getMinutes() | 獲取分鐘數(shù),范圍為0~59 |
getSeconds() | 獲取秒數(shù),范圍為0~59 |
getMilliseconds() | 獲取毫秒數(shù),范圍為0~999 |
getTime() | 獲取從1970-01-01 00:00:00 距離Date對象所代表時間的毫秒數(shù) |
表1
Date對象的常用get方法 |
|
方法 |
作用 |
setFullYear(value) | 設置年份 |
setMouth(value) | 設置月份 |
setDate(value) | 設置月份中的某一天 |
setHours() | 設置小時數(shù) |
setMinutes() | 設置分鐘數(shù) |
setSeconds() | 設置秒數(shù) |
setMilliseconds() | 設置毫秒數(shù) |
setTime() | 通過從1970-01-01 00:00:00 計時的毫秒數(shù)來設置時間 |
表2
下面我們通過具體代碼演示Date對象的使用,在控制臺中輸出當前日期。
<script> var date = new Date(); // 基于當前日期時間創(chuàng)建Date對象 var year = date.getFullYear(); //獲取年 var month = date.getMonth() + 1; //獲取月,范圍為0~ 11 (0表示一月, 1表示二月,依次類推) var day = date.getDate(); //獲取日 //通過數(shù)組將星期值轉(zhuǎn)換為字符串 var week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; //輸出date對象保存的時間,示例:今天是2021年11月17日星期三 console.log('今天是' + year + '年'+ month + '月'+ day + '日' + week[date.getDate() % 7]); </script>
在上述代碼中,第9行的week[date.getDay() % 7]用來從date對象中獲取星期值,然后作為數(shù)組的索引到week數(shù)組中取出對應的星期字符串。
在開發(fā)中,還經(jīng)常需要將日期對象中的時間轉(zhuǎn)換成指定的格式,示例代碼如下。
<script> //返回當前時間,格式為:時:分:秒,用兩位數(shù)字表示 function getTime() { var time = new Date(); var h = time.getHours(); h = h<10 ? '0'+ h:h; var m = time.getMinutes(); m = m<10 ? '0'+ m:m; var s = time.getSeconds(); s = s<10 ? '0' + s:s; return h +':'+ m +':'+ s; } console.log(getTime()); //輸出結(jié)果示例: 15:06:55 </script>
在上述代碼中,第6、8、10行代碼用來判斷給定數(shù)字是否為一位數(shù),如果是一位數(shù)則在前面加上“0”。