JavaScript
使用JavaScript Moment TimeZone時區轉換與處理
2017/11/22 17:44:47
1
20347
使用JavaScript Moment TimeZone時區轉換與處理
簡介 |
簡單介紹Local Time與UTC時間的轉換 |
作者 |
蔡志隆 |
一、前言與導入類別庫
Monent TimeZone為JavaScript所提供專門處理時區的Library,希望此篇的介紹可以讓大家輕鬆處理時區的問題
導入的方式於JSP header區塊加入二個類別庫:
<script src="<c:url value="/xxxx/js/moment-timezone.js" />"></script>
<script src="<c:url value="/xxxx/js/moment-timezone-with-data-2012-2022.js" />"></script>
#除了導入必要的moment-timezone.js外,別忘了導入moment-timezone-with-data-2012-2022.js以免對應不到某一國家/區域的時區資訊。
二、使用與範例
1.設定Default時區用法:
moment.tz.setDefault(String);
String則要留意moment-timezone-with-data-2012-2022.js這個檔案
所輸入的國家/地區必須是這個檔案內有記錄的。
例如:
moment.tz.setDefault("Asia/Taipei");
2.取得UTC時間用法:
moment.utc().format("YYYY/MM/DD HH:mmZ");
例如:
假設時區為Asia/Taipei,目前日期時間為:2017-11-19 18:00
moment.utc("2017-11-19 18:00").format("YYYY/MM/DD HH:mmZ");
則結果為:
2017/11/19 12:00
3.UTC時間轉為當地時間用法
moment.tz(timezone).format();
例如:
假設UTC日期時間為:2017-11-19 00:00
#有一個部份需注意一下:因台灣只有一個時區(GMT+8),印尼則有三個時區範圍(GMT+7 ~ GMT+9),美國不同區域亦有相同情況。
moment.tz("Asia/Jakarta").format("YYYY/MM/DD HH:mm");
範例的國家區域為印尼雅加達(GMT+7)則結果為:
2017/11/19 07:00
4.將某一時區時間轉為另一時區時間用法
moment(datetime).tz(timezone).format();
例如:
假設nowDate日期時間為:2017-11-19 12:00(Asia/Taipei)
var nowDate = new Date();
moment(
nowDate
).tz("Asia/
Tokyo
").format("YYYY/MM/DD HH:mm");
則結果為:
2017/11/19 13:00