整理日期轉換的方式
取得日期時間
在 JavaScript
若要取得時間可用 new Date()
而若要瞭解完整時間可輸入下列程式碼
1 | var time = new Date() |
UNIX timestamp 簡介
但因為全球因為有時區問題,所以需要共通自訂時間,稱為 UNIX 時間
從 1970 年 1 月 1 日 0 時 0 分 0 秒起至現在的總秒數,不考慮閏秒。
下面的語法是取得總毫秒,但一般的 UNIX timestamp
通常是以秒數為單位
可參考stackoverflow 討論
1 | Date.now() // 回傳當前的 timestamp(毫秒) |
或是
1 | var time = new Date() |
取得某個時間
如果想知道某年月日時間資訊可輸入
1 | new Date('年/月/日') |
或是
1 | new Date('年-月-日') //舊瀏覽器可能不支援 |
得到結果如下
1 | new Date('2020/1/1') |
UNIX timestamp 轉換當下時間
也可以把 UNIX timestamp
秒數轉換當下時間,方法如下
1 | new Date (UNIX 秒數) |
結果如下
1 | new Date(1516008367167) //傳入毫秒 |
UNIX timestamp 轉換
轉換日期
但因為一般 timestamp
取得的是秒數,但在 JavaScript
中要帶入的是毫秒
所以要 new Date(timestamp * 1000)
:
1 | // 1513598707 為 timestamp |
轉換 timestamp
同樣的要取得 timestamp
,也就是總秒數則除以 1000
1 | var dateTime = Date.now(); |
或是
1 | var dateTime = new Date().getTime(); |
轉換成常見日期格式
若要把之前取得的日期,如下
1 | Mon Dec 18 2017 20:05:07 GMT+0800 (台北標準時間) |
改為 2017-12-18 這樣的格式
就要改為 ISO 8601 標準時間格式
可以使用 Date.prototype.toISOString()
1 | var a = new Date('Mon Dec 18 2017 20:05:07 GMT+0800 (台北標準時間)') |
他會回傳下方內容
1 | 2017-12-18T12:05:07.000Z |
接著可用 split()
來分割日期和時間內容
1 | a.toISOString().split('T') |
若只要取得日期就可用
1 | a.toISOString().split('T')[0] |
以上可參考 Codepen 範例
上述內容也參考下方文章
JavaScript Date Time Method 日期時間
在 JavaScript 簡單取得 unix timestamp