一、Date類型簡介
Date類型是Javascript中的內置對象,用於處理日期和時間相關的數據。
在JavaScript中,Date類型的實例是從1970年1月1日00:00:00以來的毫秒數。可以使用以下任何一種方式創建一個Date對象:
//不帶參數的構造函數,創建當前系統的時間 const date1 = new Date(); //傳遞一個代表指定日期的字元串作為參數,注意字元串必須符合GMT格式 const date2 = new Date("January 1 2019"); //傳遞一個代表指定日期的時間戳作為參數 const date3 = new Date(1589565564318);
二、Date類型方法
1. 獲取年份、月份、日期、小時、分鐘、秒數等
可以使用以下方法獲取Date對象的具體時間信息:
- getFullYear() 返回一個表示年份的四位數字
- getMonth() 返回0~11表示月份
- getDate() 返回1~31表示每月的日期數
- getHours() 返回0~23表示小時數
- getMinutes() 返回0~59表示分鐘數
- getSeconds() 返回0~59表示秒數
- getMilliseconds() 返回0~999表示毫秒數
const date = new Date(); console.log(date.getFullYear()); // 返回當前年份 console.log(date.getMonth()); // 返回當前月份 console.log(date.getDate()); // 返回當前日期 console.log(date.getHours()); // 返回當前小時 console.log(date.getMinutes()); // 返回當前分鐘 console.log(date.getSeconds()); // 返回當前秒數 console.log(date.getMilliseconds()); // 返回當前毫秒數
2. 時間的比較
可以使用以下方法比較兩個時間的先後順序:
- getTime() 返回一個代表日期的時間戳,該時間戳表示從1970年1月1日00:00:00以來的毫秒數。
- valueOf() 返回一個代表日期的時間戳,可以直接進行數字比較。
- getTimezoneOffset() 返回當前時區與UTC的時間差,單位為分鐘。
const date1 = new Date("January 1 2020"); const date2 = new Date("January 1 2021"); if (date1.getTime() < date2.getTime()) { console.log("date1在date2之前"); } if (date1.valueOf() < date2.valueOf()) { console.log("date1在date2之前"); } console.log(date1.getTimezoneOffset()); // 返回當前時區與UTC的時間差,單位為分鐘
3. 時間的格式化
可以使用以下方法將Date對象格式化為字元串:
- toDateString() 將日期部分轉換為字元串,格式為”Month day year”
- toLocaleString() 將完整的日期和時間轉換為本地字元串表示,格式由瀏覽器廠商決定
- toLocaleDateString() 將日期轉換為本地字元串表示,格式由瀏覽器廠商決定
- toLocaleTimeString() 將時間轉換為本地字元串表示,格式由瀏覽器廠商決定
- toString() 將完整的日期和時間轉換為字元串表示,格式由瀏覽器廠商決定
- toTimeString() 將時間部分轉換為字元串,格式為”hours:minutes:seconds”
- toUTCString() 將完整的日期和時間轉換為UTC時間表示,格式為”Fri, 12 Feb 2021 13:01:37 GMT”
const date = new Date("2021-02-14T10:20:30Z"); console.log(date.toDateString()); // 返回"Sun Feb 14 2021" console.log(date.toLocaleString()); // 返回"2021/2/14 上午6:20:30" console.log(date.toLocaleDateString()); // 返回"2021/2/14" console.log(date.toLocaleTimeString()); // 返回"上午10:20:30" console.log(date.toString()); // 返回"Sun Feb 14 2021 18:20:30 GMT+0800 (中國標準時間)" console.log(date.toTimeString()); // 返回"10:20:30 GMT+0800 (中國標準時間)" console.log(date.toUTCString()); // 返回"Sun, 14 Feb 2021 02:20:30 GMT"
三、ES6新增的Date類型方法
1. 時間的比較
可以使用ES6新增的方法比較兩個時間的先後順序:
- Date.parse() 將一個日期字元串解析為時間戳,返回毫秒數。
- Date.now() 返回當前時間的時間戳,精度為毫秒。
const date1 = Date.parse("2021-01-01"); const date2 = Date.parse("2022-01-01"); if (date1 < date2) { console.log("date1在date2之前"); } console.log(Date.now()); // 返回當前時間的時間戳,精度為毫秒
2. 時間的轉換
可以使用ES6新增的方法將時間單位進行轉換:
- getTime() 返回一個代表日期的時間戳,該時間戳表示從1970年1月1日00:00:00以來的毫秒數。
- valueOf() 返回一個代表日期的時間戳,可以直接進行數字比較。
- getTimezoneOffset() 返回當前時區與UTC的時間差,單位為分鐘。
const minutes = 60 * 1000; const hours = 60 * minutes; const days = 24 * hours; console.log(minutes + "毫秒是一分鐘"); console.log(hours + "毫秒是一小時"); console.log(days + "毫秒是一天");
四、總結
Date類型是處理JavaScript日期和時間的非常重要的內置對象,提供了多種方法用於獲取或者格式化日期和時間,同時也可以比較不同日期之間的先後順序。
原創文章,作者:QDCK,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145368.html