首先介紹一下:
北京時間與格林尼治時間或utc時間相差8個時區,北京、上海、重慶位於東8區,頁面伺服器時間是東八區時間,頁面 js 功能需要對比伺服器時間和使用者本地時間,為相容世界各地時間,需要將使用者本地時間轉換為東八區時間。
本地時間 = 格林威治時間 - 時差
格林威治時間 = 本地時間 + 時差
為時區間的差異是以小時為單位的。所以算出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("東8區現在是:" + targetdate);
參考:
了解gmt和utc的區別:
獲取當天整點時間戳
原文 import time,datetime defgettime for x in range 24 迴圈24 x依次為 0 23 獲得當前時間,strftime格式化,2d以2位的固定位寬獲取int型的數值,由此獲得整點字串 a datetime.datetime.now strftime y...
php 時間差8小時
前幾天發現乙個問題 date y m d g i t time 取出來的時間和本地時間老差8個小時,可我的系統明明是中國標準時 gmt 8 最後終於找到了問題所在 原來從php5.1.0開始,php.ini裡加入了date.timezone這個選項,預設情況下是關閉的 也就是顯示的時間 無論用什麼p...
mysql日期轉時間戳問題差8小時問題
select unix timestamp 2019 07 04 23 59 59 這種語句轉時間戳之後再轉回時間時發現日期多了8小時 這問題的原因一般是因為mysql時區造成的,解決方法如下 在mysql 或mysql工具中執行如下語句 mysql set time zone 8 00 此為我們所...