🙂
JavaScript - 程式設計
  • JavaScript - 程式設計
  • 1. 簡介
    • 1.1 講者簡介
    • 1.2 課程簡介
    • 1.3 開發工具簡介
    • 1.4 第一個 JavaScript
  • 2. 網站技術簡介
    • 2.1 網站前端技術
    • 2.2 網站後端技術
    • 2.3 JavaScript 簡介
  • 3. JavaScript程式語言
    • 3.1 套用 JavaScript
    • 3.2 註解(Comment)
    • 3.3 變數(Variable)
    • 3.4 資料型態(Data Types)
    • 3.5 Strict 模式
    • 3.6 運算子(Operator)
    • 3.7 字串(String)
    • 3.8 數值(Number)
    • 3.9 陣列(Array)
    • 3.10 物件(Object)
    • 3.11 條件式(Conditional)
    • 3.12 迴圈(Loop)
    • 3.13 函式(Function)
    • 3.14 類別(Class)
    • 3.15 傳值呼叫、傳址呼叫
    • 3.16 變數可視範圍(scope)
    • 3.17 錯誤補捉(Errors)
    • 3.18 資料格式
  • 4. JavaScript常用函式及主題
    • 4.1 JSON
    • 4.2 時間間隔執行
    • 4.3 數學(Math)
    • 4.4 日期時間(Date)
    • 4.5 陣列迭代(Iteration)
    • 4.6 陣列排序(Sort)
    • 4.7 正規表達式(Regular Expression)
    • 4.8 效能測試
    • 4.9 this 關鍵字
  • 5. 參考資料
Powered by GitBook
On this page
  • 建立當下的日期物件
  • 指定日期時間的日期物件
  • 指定日期字串的日期物件
  • YYYY-MM-DD HH:MM:SS
  • YYYY-MM-DDTHH:MM:SSZ
  • 日期相關操作
  • toString()
  • 取得日期資訊
  • 其它
  • 練習
  1. 4. JavaScript常用函式及主題

4.4 日期時間(Date)

在 javascript/practice 資料夾下,建立 date.html 來練習。

建立當下的日期物件

預設上會抓取瀏覽器上所設定的時區。建立當下的日期物件:

var d = new Date(); // 建立一個日期物件
console.log(d);

// Sun Aug 02 2020 11:48:41 GMT+0800 (Taipei Standard Time)

指定日期時間的日期物件

共有7個參數,分別是年、月、日、時、分、秒、毫秒。

留意「月」的部份,0 是一月份;到 11 是十二月份。

例 1:(指定到 7 個參數(

var d1 = new Date(2020, 7, 2, 12, 48, 10, 0);
var d2 = new Date(2020, 7, 2, 12, 48, 10, 1000);

console.log(d1); // Sun Aug 02 2020 12:48:10 GMT+0800 (Taipei Standard Time)
console.log(d2); // Sun Aug 02 2020 12:48:11 GMT+0800 (Taipei Standard Time)

例 2:(只指定 2 ~ 6 個參數)

var d1 = new Date(2020, 7, 2, 12, 48, 10);
var d2 = new Date(2020, 7, 2, 12, 48);
var d3 = new Date(2020, 7, 2, 12);
var d4 = new Date(2020, 7, 2);
var d5 = new Date(2020, 7);


console.log(d1); // Sun Aug 02 2020 12:48:10 GMT+0800 (Taipei Standard Time)
console.log(d2); // Sun Aug 02 2020 12:48:00 GMT+0800 (Taipei Standard Time)
console.log(d3); // Sun Aug 02 2020 12:00:00 GMT+0800 (Taipei Standard Time)
console.log(d4); // Sun Aug 02 2020 00:00:00 GMT+0800 (Taipei Standard Time)
console.log(d5); // Sat Aug 01 2020 00:00:00 GMT+0800 (Taipei Standard Time)

例 3:(指定 1 個參數,指的是毫秒)

var d1 = new Date(0);
var d2 = new Date(1000); // 代入的是「毫秒」,即視為第7個參數

console.log(d1); // Thu Jan 01 1970 08:00:00 GMT+0800 (Taipei Standard Time)
console.log(d2); // Thu Jan 01 1970 08:00:01 GMT+0800 (Taipei Standard Time)

Unix Timestamp:指的是從 1970 年 1 月 1 日開始,一直到現在的「秒數」。

指定日期字串的日期物件

YYYY-MM-DD HH:MM:SS

var d1 = new Date("2020-08-02");
var d2 = new Date("2020-08-02 13:40:10");
var d3 = new Date("2020-08");

console.log(d1); // Sun Aug 02 2020 08:00:00 GMT+0800 (Taipei Standard Time)
console.log(d2); // Sun Aug 02 2020 13:40:10 GMT+0800 (Taipei Standard Time)
console.log(d3); // Sat Aug 01 2020 08:00:00 GMT+0800 (Taipei Standard Time)

YYYY-MM-DDTHH:MM:SSZ

  • T:大寫的 T,用來做為日期與時間的區隔。

  • Z:表示的是 UTC 時區。

  • 如果想要表達相對於 UTC 時區,就將 Z 移除,改成 +HH:MM 或 -HH:MM。

例 1:(留意輸出會是 +8 的時區)

var d1 = new Date("2020-08-02T13:10:00Z");

console.log(d1); // Sun Aug 02 2020 21:10:00 GMT+0800 (Taipei Standard Time)

例 2:(改成 +8 時區)

var d1 = new Date("2020-08-02T13:10:00Z");
var d2 = new Date("2020-08-02T13:10:00+08:00");

console.log(d1); // Sun Aug 02 2020 21:10:00 GMT+0800 (Taipei Standard Time)
console.log(d2); // Sun Aug 02 2020 13:10:00 GMT+0800 (Taipei Standard Time)

GMT 與 UTC 查詢參考:

日期相關操作

一旦日期物件建立了,那就可以使用以下相關操作:

toString()

將日期物件的輸出轉成字串:

var d1 = new Date();

console.log(d1.toString()); // Sun Aug 02 2020 13:57:50 GMT+0800 (Taipei Standard Time)

取得日期資訊

方法

說明

getFullYear()

取得四位數的西元年。

getMonth()

0 ~ 11。取得月份。0 代表一月,11 代表十二月。

getDate()

1 ~ 31。取得日期。

getHours()

0 ~ 23。取得小時的部份。

getMinutes()

0 ~ 59。取得分鐘。

getSeconds()

0 ~ 59。取得秒數。

getMilliseconds()

0 ~ 999。取得毫秒數。

getTime()

取得 Unix Timestamp,回傳毫秒數。

getDay()

0 ~ 6。取得星期幾。0 代表星期日,6 代表星期六。

Date.now()

與 getTime() 同。

例:

var d1 = new Date();

console.log(d1.getFullYear());     // 2020
console.log(d1.getMonth());        // 7
console.log(d1.getDate());         // 2
console.log(d1.getHours());        // 14
console.log(d1.getMinutes());      // 21
console.log(d1.getSeconds());      // 0
console.log(d1.getMilliseconds()); // 518
console.log(d1.getTime());         // 1596349260518
console.log(d1.getDay());          // 0
console.log(Date.now());           // 1596349260518

其它

  • 1 天 = 24 小時 = 60 * 60 * 24 = 86400 秒 = 86400000 毫秒。

練習

完成以下函式,然後在 console 中輸出的結果是差「幾」天:

function DateDiff(date1, date2) {
  
}

console.log( DateDiff("2019-12-31", "2020-01-02") ); // 2
console.log( DateDiff("2019-12-30", "2020-01-03") ); // 4
console.log( DateDiff("2019-12-30", "2019-12-30") ); // 0

參考作法:

累積自己的函式庫 my_funcs.js。

Previous4.3 數學(Math)Next4.5 陣列迭代(Iteration)

Last updated 3 years ago

unixtimestamp 網站
UTC 與 GMT