解決方法:1、使用「ini_set('date.timezone','PRC')」設定時區;2、使用「date_default_timezone_set('PRC')」設定時區;3、在設定檔中,設定“date.timezone=PRC”。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦
在PHP中,顯示時間與實際時間不一致,是因為時區設定錯了。
全球分為24 個時區,每個時區都有自己的本地時間,同一時間內各時區的本地時間相差1~23 小時,如英國倫敦本地時間與北京本地時間相差8 小時。
想要將顯示時間與實際時間設定一樣,就需要將時區設定為本地時區,以下是一些常用時區識別碼及其意義:
Asia /Shanghai —— 上海
Asia/Chongqing —— 重慶
Asia/Urumqi —— 烏魯木齊
#Asia/Hong_Kong —— 香港
Asia/Macao —— 澳門
Asia/Taipei —— 台北
Asia/Singapore —— 新加坡
PRC —— 中國時區
註:在國內的話我們將時區設定為「Asia/Shanghai
或PRC
」都可以,設定成功之後記得重啟伺服器!
下面看看設定時區的方法:
方法1:使用ini_set() 函數設定時區
##PHP 中的ini_set() 函數可以設定指定配置選項的值,這個配置選項會在腳本運行時保持新的值,並在腳本結束時恢復。函數的語法格式如下:ini_set($varname, $newvalue)其中 $varname 為待修改的設定選項,$newvalue 為配置選項的新值。 範例:
<?php header("Content-type:text/html;charset=utf-8"); ini_set('date.timezone', 'GMT'); echo '当前的格林尼治时间为:'.date('Y-m-d H:i:s',time()).'<br>'; ini_set('date.timezone', 'PRC'); echo '国内当前时间为:'.date('Y-m-d H:i:s',time()); ?>輸出結果:
方法2:使用date_default_timezone_set() 函數設定時區
PHP 中的date_default_timezone_set() 函數可以為腳本中的所有時間日期函數設定預設時區,其語法格式如下:date_default_timezone_set($timezone_identifier)參數$timezone_identifier 為時區標識符,例如UTC(格林尼治時間)或Europe/Lisbon(葡萄牙)。 自PHP5.1.0 起(此版本日期時間函數被重寫了),如果時區不合法則每個對日期時間函數的呼叫都會產生一條E_NOTICE 等級的錯誤訊息,如果使用系統設定或TZ 環境變數則也會產生E_STRICT 等級的資訊。 範例:
<?php header("Content-type:text/html;charset=utf-8"); date_default_timezone_set('Europe/Lisbon'); echo '葡萄牙的当前时间为:'.date('Y-m-d H:i:s',time()).'<br>'; date_default_timezone_set('PRC'); echo '国内当前时间为:'.date('Y-m-d H:i:s',time()); ?>輸出結果:
#方法3:在設定檔php.ini中設定
PHP 的設定檔就是在PHP 安裝目錄下的php.ini 文件,找到並開啟它。然後在檔案中搜尋date.timezone,我們會看到如下所示的一段訊息:[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone ;date.timezone =其中
;date.timezone =前面的
;與PHP中的
//功能相同,都是註解的意思,這裡我們需要將這個;去掉,並在這一句的
=後面填寫對應的時區標識符,如下所示:
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = PRC
擴充知識:亞洲可以設定的時區識別碼#
亞洲/亞丁 | 亞洲/阿拉木圖 | #亞洲/安曼 | 亞洲/阿納德爾 |
亞洲/阿克套 | 亞洲/阿克托比 | 亞洲/阿什哈巴德 | 亞洲/阿特勞 |
亞洲/巴格達 | 亞洲/巴林 | 亞洲/巴庫 | 亞洲/曼谷 |
亞洲/巴爾瑙爾 | 亞洲/貝魯特 | 亞洲/比什凱克 | 亞洲/汶萊 |
亞洲/喬巴山 | 亞洲/科倫坡 | #亞洲/大馬士革 | |
亞洲/帝國 | 亞洲/杜拜 | 亞洲/杜尚別 | |
亞洲/加薩 | 亞洲/希伯倫 | 亞洲/胡志明 | |
亞洲/ Hovd | 亞洲/伊爾庫茨克 | 亞洲/雅加達 | |
亞洲/耶路撒冷 | 亞洲/喀布爾 | 亞洲/堪察加半島 | |
亞洲/加德滿都 | 亞洲/坎迪加 | 亞洲/加爾各答 | |
亞洲/Kuala_Lumpur | #亞洲/古晉 | 亞洲/科威特 | |
亞洲/馬加丹 | 亞洲/望加錫 | 亞洲/馬尼拉 | |
#亞洲/尼可西亞 | 亞洲/新庫茲內茨克 | 亞洲/新西伯利亞 | |
亞洲/烏拉爾 | 亞洲/金邊 | 亞洲/坤甸 | |
亞洲/卡達 | 亞洲/庫斯坦奈 | 亞洲/Qyzylorda | |
亞洲/薩哈林 | #亞洲/撒馬爾罕 | 亞洲/首爾 | |
亞洲/新加坡 | 亞洲/中科雷姆斯克 | 亞洲/台北 | |
亞洲/第比利斯 | 亞洲/德黑蘭 | 亞洲/廷布 | |
亞洲/托木斯克 | 亞洲/烏蘭巴托 | #亞洲/烏魯木齊 | |
亞洲/萬象 | 亞洲/符拉迪沃斯托克 | #亞洲/雅庫茨克 | # #亞洲/仰光 |
亞洲/埃里溫 | # | ## 推薦學習:《 |
以上是php顯示時間與實際時間不同怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!