前端表格在顯示時間上,往往會需要處理不同地區顯示的資訊問題。雖說 moment.js, dayjs … 等工具的使用上已經相當成熟,不過透過原生的 JavaScript 的內建方法,其實也可以達成一樣的效果。
內容
目標
系統端回傳 UTC 時間,前端顯示 GMT 時間 ( 有夏令時間 ),像是 GMT+8
1 2 3 4 5 6 7 8 9 |
// 藉由 locales 決定日期的顯示方式、有無 12/24 小時制 // 由於僅是要取 GMT+X 的字樣,所以設定 en-US new Date('2022-05-01T15:59:59Z') .toLocaleDateString('en-US', { day: '2-digit', timeZoneName: 'short', }).slice(4) // output 'GMT+8' |
系統端回傳 UTC 時間,前端取得與 UTC 時間的時差,如 -480
1 2 |
const offset = new Date().getTimezoneOffset() console.log(offset) // -480 |
參考資料
1. Get the Time Zone Name using JavaScript
2. JavaScript 取得各國的日期與時間