程式中時區的問題

2021-08-20 14:20:03 字數 611 閱讀 4366

time()函式返回自從 unix 紀元(格林威治時間 1970 年 1 月 1 日 00:00:00)到當前時間的秒數。但是你會發現返回的秒數少了8個小時,這是因為系統的預設時區是東八區,格林威治時間 1970 年 1 月 1 日 00:00:00對應的是北京時間 1970 年 1 月 1 日 08:00:00,這樣就造成time()函式返回的秒數會少了8個小時。如果只是單純的秒數和字串時間之間轉換,這點可以忽略,因為你在用系統函式轉換的時候,系統函式會按當前系統的預設時區去處理。

現在需要判斷當前時間的小時級別是否是在另外兩個時間的小時級別之間

需要判斷8點整是否在7點整和9點整之間,但是只有上面三個時間的秒數值,需要時間秒數對(24*60*60)求餘,得到餘數是小時時間的秒數,但是得到的開始時間的餘數為(23*60*60),結束時間的餘數為(1*60*60),當前時間的餘數為(0*60*60),這樣的到的結論就是8點整不在7點整和9點整之間,這肯定是不科學的,這就是系統時區造成的結果。將時間值加上(8*60*60)再對(24*60*60)求餘,得到的開始時間的餘數為(7*60*60),結束時間的餘數為(9*60*60),當前時間的餘數為(8*60*60),這樣就正確了,這是把缺少的8個小時補足了。php中date('z')表示系統時區時差偏移量的秒數值。

Odoo8 0單時區應用中的時區問題

由於資料庫中儲存的是utc時區,預設情況下資料匯出和group by都存在時區問題。徹底解決辦法 將以utc時區儲存的資料改為按目標時區儲存,並去掉js中的時區轉換。1 修改odoo系統環境時區 odoo openerp init py 檔案 import os os.environ tz utc ...

php中的date函式中時區問題

用php的朋友都可能遇到過這種情況。date y m d h i s 總和伺服器時間相差幾個 小時。網上查了才知道,原來從php5.1.0開始,php.ini裡加入了date.timezone這個選 項,預設情況下是關閉的,也就是顯示的時間 無論用什麼php命令 都是格林威治標 準時間,所以才會有這...

php新德里時區 PHP中遇到的時區問題解決方法

最近在學習php過程中發現php中的格式化時間戳比北京時間晚了8個小時,上網搜尋發現原來是時區不對,解決辦法是 1 永久修改 更改php.ini檔案中的data.timezone prc 這是中國時間。重啟apache服務後生效。2 臨時修改 在使用格式化輸入時間之前,新增ini set date....