首頁  >  文章  >  後端開發  >  PHP中設定時區方法

PHP中設定時區方法

不言
不言原創
2018-04-09 17:37:0511850瀏覽

這篇文章要跟大家分享的內容是關於PHP中設定時區方法,有需要的朋友可以參考一下

今天發現一段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 – 澳門
Asia/Taipei – 台北
Asia/Singapore – 新加坡


函數設定時區方法:







##複製程式碼
程式碼如下:

<?php 
function_exists(date_default_timezone_set);//在这他总是返回1,这函数是判断这里面的字符是不是一个定义了的函数名 
date_default_timezone_set("Etc/GMT");//这是格林威治标准时间,得到的时间和默认时区是一样的 
date_default_timezone_set("Etc/GMT+8");//这里比林威治标准时间慢8小时 
date_default_timezone_set("Etc/GMT-8");//这里比林威治标准时间快8小时 
date_default_timezone_set(&#39;PRC&#39;); //设置中国时区 
?>


函數ini_set()設定時區:
可以在檔案開頭加入ini_set('date.timezone', 'Asia/Shanghai'); // 'Asia/Shanghai' 為上海時區

#手動修改php.ini設定

開啟php找到date.timezone = "PRC" 如有去掉前面的分號,沒有的話手動添加!


以下是一些資料補充:



裝上PHP5後你會發現這樣的問題

$atime=date ("Y-m-d H:i:s"); echo $atime; ?>

輸出:2006-05-16 06:36:06

現在幾點了?/我的是14:36
這是為什麼要捏?
原因是假如你不在程式或設定檔中設定你的伺服器當地時區的話
PHP所取的時間是格林威治標準時間,所以和你當地的時間會有出入
格林威治標準時間和北京時間大概差8小時左右那我們要如何避免時間誤差呢?
我們一起來看看解決方法:
在頁頭使用date_default_timezone_set()設定我的預設時區為北京時間



複製程式碼
程式碼如下:

<? 
date_default_timezone_set(&#39;PRC&#39;); 
echo date(&#39;Y-m-d H:i:s&#39;); 
?>

時間和伺服器目前時間一樣了!
另外附date_default_timezone_set用法如下:
------------------------ -------------------------------------------------- ----------
date_default_timezone_set
(PHP 5 >= 5.1.0RC1)
date_default_timezone_set -- 設定用於一個腳本中所有日期時間函數的預設時區
說明
bool date_default_timezone_set ( string timezone_identifier )
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:36:06 ###現在幾點了?/我的是14:36 ###這是為什麼捏? ###原因是假如你不在程式或設定檔中設定你的伺服器當地時區的話###PHP所取的時間是格林威治標準時間,所以和你當地的時間會有出入###格林威治標準時間和北京時間大概差8小時左右那我們要如何避免時間誤差呢? ###我們一起來看看解決方法: ###在頁頭使用date_default_timezone_set()設定我的預設時區為北京時間############複製程式碼### 程式碼如下:# ##
<? 
date_default_timezone_set(&#39;PRC&#39;); 
echo date(&#39;Y-m-d H:i:s&#39;); 
?>

时间和服务器当前时间一样了!
另外附date_default_timezone_set用法如下:
------------------------------------------------------------------------------------
date_default_timezone_set
(PHP 5 >= 5.1.0RC1)
date_default_timezone_set -- 设定用于一个脚本中所有日期时间函数的默认时区
说明
bool date_default_timezone_set ( string timezone_identifier )
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设置Cookie的HTTPONLY属性方法详解

以上是PHP中設定時區方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn