要求
製作一個顯示各個時區的時鐘
攻略
- 將時區轉成
timestamp
- 在依各時區做計算,再轉回需要的格式
- 利用
setInterval()
達到每秒更新將時區轉換成
利用timestamp
new Date()
宣告一個時間物件,在轉換成時間戳1
2
3
4
5
6
7
8
9
10let d =new Date()
// 當前時區的時間
// Wed Jan 13 2021 19:05:13 GMT+0800 (台北標準時間)
new Date().valueOf()
//這裡的時間顯示至毫秒
//1610536513697
new Date(1610536513697)
// Wed Jan 13 2021 19:05:13 GMT+0800 (台北標準時間)各時區計算
1
2
3
4
5
6// 因為 GMT+0800 (台北標準時間) 代表 台北比格林威治時間快 8 小時
// GMT-0500 (紐約標準時間) 代表 紐約比格林威治時間慢 5 小時
let localTime=new Date(timestamp + (timeZone-8)*60*60*1000)
// 因為 timestamp 顯示為毫秒,所以要乘 1000 轉換為秒,
// 在乘 60 轉換為分,在乘 60 轉換為小時toLocaleString()
最後附上程式碼1
2
3//toLocaleString('語系',自由參數)
new Date().toLocaleString('ko-KR', { timeZone: 'UTC' });
// "2021. 1. 13. 오전 11:35:04"