ECMAScript 的基本引用類型——Date 講解

這是我參與8月更文挑戰的第8天,活動詳情查看:8月更文挑戰前端

Date 類型

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.parse()支持如下日期格式:瀏覽器

  • 月/日/年,例如:5/20/2020
  • 月名 日,年,例如:May 20 2020
  • 周幾 月名 日 年 時:分:秒 時區,如Tue May 20 202000:00:00 GMT-0700
  • ISO 8601擴展格式 YYYY-MM-DDTHH:mm:ss.sssZ,如2020-05-20T00:00:00(只適用於兼容ES5的實現)

若是把以上標識日期的字符串直接傳給 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()

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

Date.now()

此外,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

歡迎閱讀其它文章

相關文章
相關標籤/搜索