JavaScript

使用JavaScript Moment TimeZone時區轉換與處理

蔡志隆 2017/11/22 17:44:47
19520

使用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
 
 
 
 
 
 

 

蔡志隆