JavaScript - 取得當前時間的方法

建立 Date( ) 物件

在 JavaScript 中取得時間資訊需使用 Date() 物件來指向某一個時間點,透過物件內建的函式來取得相關資訊。
取得時間的資訊有兩種方式,第一種是透過 Date.now() 來取得時間戳記(tiemstamp,毫秒),第二種是透過建構式建立 Date()物件,物件會回傳目前時間資訊的日期物件,然後就可以利用內建的函式來取得資訊。

Date( )內建函式

以下為取得各資訊的函式:

1
2
3
4
5
6
7
8
9
10
Date.now(); //  回傳當前的時間戳記timestamp(毫秒)
let today = new Date(); // 回傳目前時間的日期物件,利用today變數來儲存資訊
today.getTime(); // 輸入時間物件,回傳特定時間的 timestamp(毫秒)
today.getFullYear();
today.getMonth(); // 回傳數值,取得月份,月份 0 表示 1 月!
today.getDate(); // 回傳數值,取得幾號
today.getDay(); // 回傳數值,取得星期幾
today.getSeconds(); // 回傳數值,取得秒資訊
today.getMinutes(); // 回傳數值,取得分資訊
today.getHours(); // 回傳數值,取得小時資訊

利用建構式建立 Date( ) 物件取得時間

範例:

1
2
3
4
5
6
let today = new Date(); //  回傳目前時間的日期物件
let yyyy = today.getFullYear();
//這邊利用三元運算來補0
let mm = (today.getMonth() + 1 < 10 ? '0' : '') + (today.getMonth() + 1);
let dd = (today.getDate() < 10 ? '0' : '') + today.getDate();
console.log(yyyy + '-' + mm + '-' + dd);

範例結果
這邊要注意的是,在取得月份的時候,函式所回傳的資料是從 0 開始,也就是月份會回傳 0 ~ 11,代表 1 ~ 12 月,所以我們要自己補 1 才是正確的月份。
另外,也可以透過三元運算來為個位數的月份及日來補 0 。

將 TimeStamp 準換為其它表示方式

最後,如果我們有一筆 timestamp 的資料要轉換成我們看得懂的格式,該如何做呢?
只要將 timestamp 作為參數帶入 Date( ) 物件內即可(注意 timestamp 要以毫秒為單位帶入

1
2
3
4
5
6
let timestamp = 1237648595747;
let day = new Date(timestamp);
let yyyy = day.getFullYear();
let mm = (day.getMonth() + 1 < 10 ? '0' : '') + (day.getMonth() + 1);
let dd = (day.getDate() < 10 ? '0' : '') + day.getDate();
console.log(yyyy + '-' + mm + '-' + dd);

範例結果

0%