0%

JS new Date() JS地下城 4F 時區

要求

製作一個顯示各個時區的時鐘

攻略

  • 將時區轉成timestamp
  • 在依各時區做計算,再轉回需要的格式
  • 利用setInterval()達到每秒更新

    將時區轉換成timestamp

    利用new Date()宣告一個時間物件,在轉換成時間戳
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    let 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"
    最後附上程式碼