這是我參與8月更文挑戰的第8天,活動詳情查看:8月更文挑戰前端
ECMAScript 的 Date 類型是參考 Java 早期版本的 java.util.Date
。Date 類型保存的是自 1970 年1 月 1 日午夜至今所通過的毫秒數,能夠精確表示 1970 年 1 月1 日以後 285616 年的日期。示例:java
let now = new Date();
複製代碼
默認不帶參數的狀況下,建立的對象將保存當前的日期和時間。若是要基於別的日期和時間建立,須要傳入毫秒數。 不過直接傳毫秒數有點不太友好,ECMAScript 提供了兩個輔助方法,Date.parse()
和Date.UTC()
。能夠將指定日期轉成毫秒數。web
Date.parse()
支持如下日期格式:瀏覽器
若是把以上標識日期的字符串直接傳給 Date 函數,省略了Date.parse()
,那麼 Date 會在後臺默認調用,也就是說,能夠省略Date.parse()
方法。 示例:markdown
let loveDate = new Date(Date.parse("May 20, 2020"));
// or
let loveDate = new Date("May 20, 2020");
複製代碼
Date.UTC()
接受的參數格式是:年、零起點月數(1月是0,2月是1,以此類推)、日(1-31)、時(0-23)、分、秒和毫秒。這些參數中,只有前兩個(年和月)是必需的。示例:函數
// GMT時間2000年1月1日零點
let y2k = new Date(Date.UTC(2000, 0));
// GMT時間2005年5月5日下午5點55分55秒
let allFives = new Date(Date.UTC(2005, 4, 5, 17, 55, 55));
複製代碼
與Date.parse()
同樣,Date.UTC()
也會被 Date 構造函數隱式調用,但有一個區別:這種狀況下建立的是本地日期,不是 GMT 日期。post
此外,ECMAScript 還提供了Date.now()
方法,返回執行時的日期時間毫秒數,每每用在代碼分析中。示例:網站
// 起始時間
let start = Date.now();
// 調用函數
doSomething();
// 結束時間
let stop = Date.now();
result = stop - start;
複製代碼
Date 類型有幾個專門用於格式化日期的方法,它們都會返回字符串:ui
toDateString()
顯示日期中的周幾、月、日、年(格式特定於實現)toTimeString()
顯示日期中的時、分、秒和時區(格式特定於實現)toLocaleDateString()
顯示日期中的周幾、月、日、年(格式特定於實現和地區)toLocaleTimeString()
顯示日期中的時、分、秒(格式特定於實現和地區)toUTCString()
顯示完整的UTC日期(格式特定於實現)這些方法的輸出與toLocaleString()
和toString()
同樣,會因瀏覽器而異。所以不能用於在用戶界面上一致地顯示日期。url