PHP中設定時區方法匯總

WBOY
發布: 2016-07-29 09:03:37
原創
823 人瀏覽過
今天發現一段PHP程式碼中的時間判斷語句出了點問題,研究了一下發現問題出在PHP的時區設定上,PHP所取的時間預設是格林威治標準時間,所以和北京時間相差8小時
找到原因後,在網路上搜尋到了一些關於PHP的時區設定方法: 
1、修改php.ini,在php.ini找到data.timezone =去掉它前面的;號,然後設定data.timezone = “Asia/ Shanghai”;即可。
2、在程式PHP 5以上版本的程式碼中使用函數ini_set('date.timezone','Asia/Shanghai');或date_default_timezone_set('Asia/Shanghai'); 
一些常用的時區識別碼說明: 
Asia/Shanghai – 上海 
Asia/Chongqing – 重慶 
Asia/Urumqi – 烏魯木齊 
Asia/Hong_Kong – 香港 
Asia/Macao – 澳門設計時
複製程式碼程式碼如下:
function_exists(date_default_timezone_set);//在這他總是回傳1,這函數是判斷這裡面的字元是不是一個定義了的函數名稱 
date_default_timezone_set("Etc/GMT")/Etc/GMT")/Etc/GMT"); /這是格林威治標準時間,得到的時間和預設時區是一樣的 
date_default_timezone_set("Etc/GMT+8");//這裡比林威治標準時間慢8小時 
date_default_timezone_set("Etc/GMT- 8");//這裡比林威治標準時間快8小時 
date_default_timezone_set('PRC'); //設定中國時區 
?> 
函數ini_set()設定時區: 
可以在檔案開頭加入ini_set('dateini_set('dateini_set('dateini_set('dateini_set('dateini_set() .timezone','Asia/Shanghai'); // 'Asia/Shanghai' 為上海時區 
手動修改php.ini設定 
打開php找到date.timezone = "PRC" 如有去掉前面的分號,沒有的話手動添加!
以下是一些資料補充:
裝上PHP5後你會發現這樣的問題 
$atime=date("Y-m-d H:i:s"); 
echo $atime; 
?> 
輸出:2006-05-166 06:36:06 
現在幾點了?/我的是14:36 
這是為什麼捏?
原因是假如你不在程式或檔案中設定你的伺服器當地時區的話 
PHP所取的時間是格林威治標準時間,所以和你當地的時間會有出入 
格林威治標準時間和北京時間大概差8小時左右那我們要如何避免時間誤差呢?
我們一起來看看解決方法: 
在頁頭使用date_default_timezone_set()設定我的預設時區為北京時間 
複製程式碼如下:
 
date_default_timezone_set('PRC'); i:s'); 
?> 
時間跟伺服器目前時間一樣了! 
另外附date_default_timezone_set用法如下: 
------------------------ -------------------------------------------------- ---------- 
date_default_timezone_set 
(PHP 5 >= 5.1.0RC1) 
date_default_timezone_set -- 設定用於一個腳本中所有日期時間函數的預設時區 
_conn_strnetime_bate_str; date_default_timezone_set() 設定用於所有日期時間函數的預設時區。 
註: 自 PHP 5.1.0 起(此版本日期時間函數被重寫了),如果時區不合法則每個對日期時間函數的呼叫都會產生一條 E_NOTICE 等級的錯誤訊息。 
參數 
timezone_identifier 
時區識別符,例如 UTC 或 Europe/Lisbon 
回傳值 
本函數永遠傳回 TRUE(即使 timezone_identifier 參數不合法)。
------------------------------------------------- ------------------------------------ 
或修改php.ini 中date.timezone 值 
date. timezone = PRC 
裝上PHP5後你會發現這樣的問題 
$atime=date("Y-m-d H:i:s"); 
echo $atime; 
?> 
輸出:2006-05-16 06 
現在幾點了?/我的是14:36 
這是為什麼捏?
原因是假如你不在程式或檔案中設定你的伺服器當地時區的話 
PHP所取的時間是格林威治標準時間,所以和你當地的時間會有出入 
格林威治標準時間和北京時間大概差8小時左右那我們要如何避免時間誤差呢?
我們一起來看看解決方法: 
在頁頭使用date_default_timezone_set()設定我的預設時區為北京時間 
複製程式碼如下:
 
date_default_timezone_set('PRC'); i:s'); 
?> 
時間跟伺服器目前時間一樣了! 
另外附date_default_timezone_set用法如下: 
------------------------ -------------------------------------------------- ---------- 
date_default_timezone_set 
(PHP 5 >= 5.1.0RC1) 
date_default_timezone_set -- 設定用於一個腳本中所有日期時間函數的預設時區 
_conn_strnetime_bate_str; date_default_timezone_set() 設定用於所有日期時間函數的預設時區。 
註: 自 PHP 5.1.0 起(此版本日期時間函數被重寫了),如果時區不合法則每個對日期時間函數的呼叫都會產生一條 E_NOTICE 等級的錯誤訊息。 
參數 
timezone_identifier 
時區識別符,例如 UTC 或 Europe/Lisbon 
回傳值 
本函數永遠傳回 TRUE(即使 timezone_identifier 參數不合法)。
------------------------------------------------- ------------------------------------ 
或修改php.ini 中date.timezone 值 
date. timezone = PRC

以上就介紹了PHP中設定時區方法匯總,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

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