[JS] 關於時間 new Date()
關於時間
在JavaScript中取得時間,可用new Date(),它是一個JS內建的一個Constructor,內容可以帶入參數來取得特定時間,不帶入參數則取得現在時間。
1 | let d = new Date(); |
取得日期時間中某個值 get
- 較需注意day和month回傳的是索引值,起始值0為週日和一月
1 | const d = new Date(); //Tue Nov 24 2020 22:45:39 GMT+0800 (台北標準時間) |
時間物件轉換字串
1 | d.toString() // Tue Nov 24 2020 22:45:39 GMT+0800 (台北標準時間) |
好用的 toLocaleString() 轉字串
toLocaleString()的參數中可以帶入語言和自定義模式
語言參數:
英文 ‘en-US’ // 12/1/2020, 11:57:04 PM
繁中 ‘zh-Hant’ // 2020/12/1 下午11:57:04
簡中 ‘zh-Hans’
日文 ‘ja-JP’ // 2020/12/1 23:57:04
自定義參數:
year: ‘numeric’, ‘2-digit’ 數字或是兩位數
month: ‘numeric’, ‘2-digit’, ‘narrow’, ‘short’, ‘long’. 數字,文字 是否縮寫
day: ‘numeric’, ‘2-digit’ 數字或是兩位數
weekday: ‘narrow’, ‘short’, ‘long’ 星期 文字是否縮寫等
hour: ‘numeric’, ‘2-digit’ 數字或是兩位數
minute: ‘numeric’, ‘2-digit’ 數字或是兩位數
second: ‘numeric’, ‘2-digit’ 數字或是兩位數
1 | let myDate = new Date(); |
- 另外 .toLocaleString() 也可以用在轉換數字格式,數字千位數加上逗號或是貨幣,百分比等。可參考下面這篇
設定時間 set
JavaScript中的日期格式字串在不同瀏覽器的設定可能不同,可以查看下面這個格式相容表
通用的格式
年/月/日
2020/02/12
2020/2/12
2020/02/12 12:10
2020/02/12 12:10:56
月/日/年
01/02/2020
1/2/2020
1/2/2020 12:10
ISO 8601 格式
YYYY-MM-DDTHH:mm:ss.sssZ
2020-11-24T14:45:39.070ZT 用來分隔 年月日 和 時分秒毫秒
Z 為UTC標準時間,其他時區的時間可以用+或-,再加上HH:mm作為時區的表達式
設定時間的方法
1 | let myDate = new Date(); |
可設定時間增減,比較前後
1 | const today = new Date(); //Wed Nov 25 2020 00:01:45 GMT+0800 (台北標準時間) |
TimeZone 不同時區
- UTC 世界協調時間(Coordinated Universal Time)
- GTM 格林威治標準時間(Greenwich Mean Time)
GMT 和 UTC 在一般使用的情況下沒有差別,台灣的時區是 UTC+8 或是 GMT+8 都可以。
偏移(offset)
某地區與 UTC 偏移的時間,例如 +08:00,表示該地區的時間比 UTC 快了 8 小時。
.getTimezoneOffset() 以台灣為例,取得的值為-480,除以 60 正負相反後則為 +8。
處理時區的函式庫
月曆時鐘
之前在做JS30時鐘時,順便加上了月曆和數字鐘的功能
參考資料
[JS] 關於時間 new Date()