JS時區時間轉換詳解

小云云
發布: 2018-03-21 16:56:23
原創
4538 人瀏覽過


頁面伺服器時間是東八區時間,頁面JS 功能需要比較伺服器時間和使用者本地時間,為相容世界各地時間,需要將使用者本地時間轉換為東八區時間。本文主要和大家分享JS時區時間轉換詳解,希望能幫助大家。

基本概念

格林威治時間

格林威治子午線上的地方時,或零時區(中時區)的區時叫做格林威治時間,也叫世界時。 (更多詳細的概念不說了,這裡我們不需要。) 例如我們中國是東八區,北京時間是(GMT+08:00)

#獲得本地與格林威治時間的時差:new Date().getTimezoneOffset(),單位為分鐘。

知道格林威治時間,換算本地正確時間

本地時間= 格林威治時間- 時差

已知本地時間,換算對應格林威治時間:

格林威治時間= 本地時間+ 時差

已知本地時間,換算其他時區的時間

因為時區間的差異是以小時為單位的。所以算出0時區的時間後,再減去或加上對應的小時即可(東N區便+N小時,西N區便-N小時)。 為了方便計算,東N區記做正數,西N區記做負數,即:目標時區時間= 本地時間+ 時差+ 時區間隔

範例:將本地時間轉換為東八區時間

var timezone = 8; //目标时区时间,东八区var offset_GMT = new Date().getTimezoneOffset(); // 本地时间和格林威治的时间差,单位为分钟var nowDate = new Date().getTime(); // 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数var targetDate = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000); console.log("东2区现在是:" + targetDate);
登入後複製
).getTimezoneOffset(); // 本地时间和格林威治的时间差,单位为分钟var nowDate = new Date().getTime(); // 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数var targetDate = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000); console.log("东2区现在是:" + targetDate);
登入後複製

相關推薦:

##[轉載]關於php時區時間異常有關問題

Javascript 世界時區時間顯示程式碼_時間日期

PHP轉換資料庫的GMT+8的字串為使用者本地時區時間

以上是JS時區時間轉換詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!