這篇文章主要介紹了關於PHP預設時區的修改,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
每個地區都有自己的本地時間,在網路上以及無線電通訊中,時間的轉換問題就顯得格外突出。整個地球分為二十四個時區,每個時區都有自己的本地時間。在國際無線電或網路通訊場合,為了統一起見,使用一個統一的時間,稱為通用協調時(UTC,Universal Time Coordinated),是由世界時間標準設定的全球標準時間。 UTC原先也被稱為格林威治標準時間(GMT,Greenwich Mean Time),都與英國倫敦的本地時間相同。
PHP預設的時區設定是UTC時間,而北京正好位於時區的東八區,領先UTC八個小時。所以在使用PHP中像time()等取得目前時間的函數時,得到的時間總是不對,表現是和北京時間相差八小時。如果希望正確的顯示北京時間,就需要修改預設的時區設置,可以透過以下兩種方式完成。
如果使用的是獨立的伺服器,有權限修改設定文件,設定時區就可以透過修改php.ini中的date.timezone屬性完成。我們可以將這個屬性的值設為"Asia/Shang"、"Asia/Chongqing"、"Etc/GMT-8"或PRC等中的一個,再在PHP腳本中取得的目前時間就是北京時間。修改PHP的設定檔如下所示:
date.timezone = Etc/GMT-8 //在配置文件中设置默认时区为东8区(北京时间)
如果您使用的是共用伺服器,沒有權限修改設定檔php.ini,且PHP版本又在5.1.0以上,也可以在輸出時間之前調用date_default_timezone_set()函數設定時區。此函數需要提供一個時區識別符作為參數,和設定檔中date.timezone屬性的值相同。此函數的使用如下所示:
date_default_timezone_set('PRC'); //在输出时间之前设置时区,PRC为中华人民共和国 echo date('Y-m-d H:i:s', time()); //输出的当前时间为北京时间
getdate()函數傳回的陣列單元
鍵 名稱 | #描 述 | 傳回值範例 |
hours | ##小時的數值表示 | 0~23 |
#mday | 月份中日的數值表示 | 1~31 |
#minutes | ||
分鐘的數值表示 | 0~59 | |
#月份的數值表示 | 1~12 | |
月份的完整文字表示 | January~December | |
秒的數值表示 | 0~59 | |
一週中日的數值表示 | 0~6(0表示星期日) | |
一週中日的完整文字表示 | #Sunday~Saturday | ##yday |
一年中日的數值偏移 | #0~365 | ##year |
年份的4位元表示 | 例如:1999或2009
| #0自從UNIX紀元開始至今的秒數, |
Array ( [seconds] => 50 //秒的数值表示 [minutes] => 30 //分钟的数值表示 [hours] => 7 //小时的数值表示 [mday] => 1 //月份中日的数值表示 [wday] => 4 //一周中日的数值表示 [mon] => 10 //月份的数值表示 [year] => 2009 //年份的4位表示 [yday] => 273 //一年中日的数值偏移 [weekday] => Thursday //一周中日的完整文本表示 [month] => October //月份的完整文本表示 [0] => 1254382250 //自从UNIX纪元开始至今的秒数 )
以上是PHP預設時區的修改的詳細內容。更多資訊請關注PHP中文網其他相關文章!