js 時間轉東八區 JS時區時間轉換詳解

2021-10-13 06:50:04 字數 1106 閱讀 1889

頁面伺服器時間是東八區時間,頁面 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);

mysql時區設定為東八區

場景 後台返回給頁面的時間統一差8小時。分析 差八小時,應該是時區問題。具體的是哪一層出的問題呢,mybatis?mysql?系統時間?解析 1.查詢mysql時區 正常 輸入show variables like time zone 顯示當前時區 全域性引數system time zone 系統時...

MySql中設定時區為東八區

在mysqld下新增配置default time zone 8 00 然後重啟mysql服務 windows下管理員身份啟動cmd net stop mysql net start mysql mysqld 設定服務端使用的字符集為utf 8 character set server utf8 繫結...

JS時間轉時間戳,時間戳轉時間。時間顯示模式。

時間轉為時間戳 function date2timestamp datetime 時間戳轉時間 function timestamp2date timestamp,mode replace 年 月 g,replace 日 g,replace 上午 g,replace 下午 g,var date ar...