Date
1 創建日期對象
-
Date(),Date類型的構造函數
在不給 Date 構造函數傳參數的情況下,創建的對象將保存當前日期和時間
let now = new Date(); // Tue Dec 14 2021 09:51:47 GMT+0800 (中國標准時間)
- 要基於其他日期和時間創建日期對象,必須傳入其毫秒表示(1970 年 1 月 1 日午夜之后的毫秒數)
let someDate = new Date(597254400000); // Mon Dec 05 1988 00:00:00 GMT+0800 (中國標准時間)
- 如果參數是字符串,會后台調用Date.parse()
let someDate = new Date("May 23, 2019"); // Mon Dec 05 1988 00:00:00 GMT+0800 (中國標准時間)
-
Date.parse(),字符串日期轉毫秒
- 參數是表示日期的字符串參數,參數支持如下格式
- “月/日/年”,如"5/23/2019";
- “月名 日, 年”,如"May 23, 2019";
- 返回值是這個日期距離1970 年 1 月 1 日午夜的毫秒數
let date1 = Date.parse('12/5/1969'); // -2361600000 let date2 = Date.parse('12/5/1988'); // 597254400000
- 參數是表示日期的字符串參數,參數支持如下格式
-
Date.now(),返回表示方法執行時日期和時間的毫秒數,可以用在代碼分析中
// 起始時間 let start = Date.now(); // 調用函數 doSomething(); // 結束時間 let stop = Date.now(), result = stop - start;
-
Date.UTC(),也返回日期的毫秒表示,和Date.parse的參數不同,也會被Date()隱式調用
- 參數只傳年、月,默認日為1,可以傳年月日時分秒,月從0開始
- 返回值是GMT時間,谷歌瀏覽器會轉成中國標准時間
let y2k = new Date(Date.UTC(2000, 0)); // Sat Jan 01 2000 08:00:00 GMT+0800 (中國標准時間) let allFives = new Date(Date.UTC(2005, 4, 5, 17, 55, 55)); // Thu May 05 2005 08:55:55 GMT+0800 (中國標准時間)
- Date(),隱式調用
let y2k = new Date(2000, 0); // Sat Jan 01 2000 08:00:00 GMT+0800 (中國標准時間)
-
valueOf,日期可以比大小,Date對象的valueOf()會返回毫秒數
2 日期/時間方法
方法名 | 返回值 |
---|---|
getTime() | 返回日期的毫秒表示;與 valueOf()相同 |
setTime(milliseconds) | 設置日期的毫秒表示,從而修改整個日期 |
getFullYear() | 返回 4 位數年(即 2019 而不是 19) |
setFullYear(year) | 設置日期的年(year 必須是 4 位數) |
getMonth() | 返回日期的月(0 表示 1 月,11 表示 12 月) |
setMonth(month) | 設置日期的月(month 為大於 0 的數值,大於 11 加年) |
getDate() | 返回日期中的日(1~31) |
setDate(date) | 設置日期中的日(如果 date 大於該月天數,則加月) |
getDay() | 返回 UTC 日期中表示周幾的數值(0 表示周日,6 表示周六) |
getHours() | 返回日期中的時(0~23) |
setHours(hours) | 設置日期中的時(如果 hours 大於 23,則加日) |
getMinutes() | 返回日期中的分(0~59) |
setMinutes(minutes) | 設置日期中的分(如果 minutes 大於 59,則加時) |
getSeconds() | 返回日期中的秒(0~59) |
setSeconds(seconds) | 設置日期中的秒(如果 seconds 大於 59,則加分) |