PHP中設(shè)置時(shí)區(qū)方法小結(jié)
更新時(shí)間:2012年06月03日 21:16:40 作者:
今天發(fā)現(xiàn)一段PHP代碼中的時(shí)間判斷語句出了點(diǎn)問題,研究了一下發(fā)現(xiàn)問題出在PHP的時(shí)區(qū)設(shè)置上,PHP所取的時(shí)間默認(rèn)是格林威治標(biāo)準(zhǔn)時(shí)間,所以和北京時(shí)間相差8小時(shí)
找到原因后,在網(wǎng)上搜索到了一些關(guān)于PHP的時(shí)區(qū)設(shè)置方法:
1、修改php.ini,在php.ini中找到data.timezone =去掉它前面的;號(hào),然后設(shè)置data.timezone = “Asia/Shanghai”;即可。
2、在程序PHP 5以上版本的程序代碼中使用函數(shù)ini_set('date.timezone','Asia/Shanghai');或者date_default_timezone_set(‘Asia/Shanghai');
一些常用的時(shí)區(qū)標(biāo)識(shí)符說明:
Asia/Shanghai – 上海
Asia/Chongqing – 重慶
Asia/Urumqi – 烏魯木齊
Asia/Hong_Kong – 香港
Asia/Macao – 澳門
Asia/Taipei – 臺(tái)北
Asia/Singapore – 新加坡
函數(shù)設(shè)置時(shí)區(qū)方法:
<?php
function_exists(date_default_timezone_set);//在這他總是返回1,這函數(shù)是判斷這里面的字符是不是一個(gè)定義了的函數(shù)名
date_default_timezone_set("Etc/GMT");//這是格林威治標(biāo)準(zhǔn)時(shí)間,得到的時(shí)間和默認(rèn)時(shí)區(qū)是一樣的
date_default_timezone_set("Etc/GMT+8");//這里比林威治標(biāo)準(zhǔn)時(shí)間慢8小時(shí)
date_default_timezone_set("Etc/GMT-8");//這里比林威治標(biāo)準(zhǔn)時(shí)間快8小時(shí)
date_default_timezone_set('PRC'); //設(shè)置中國(guó)時(shí)區(qū)
?>
函數(shù)ini_set()設(shè)置時(shí)區(qū):
可以在文件開頭加入 ini_set('date.timezone','Asia/Shanghai'); // 'Asia/Shanghai' 為上海時(shí)區(qū)
手動(dòng)修改php.ini設(shè)置
打開php找到date.timezone = "PRC" 如有去掉前面的分號(hào),沒有的話手動(dòng)添加!
以下是一些資料補(bǔ)充:
裝上PHP5后你會(huì)發(fā)現(xiàn)這樣的問題
$atime=date("Y-m-d H:i:s");
echo $atime;
?>
輸出:2006-05-16 06:36:06
現(xiàn)在幾點(diǎn)了?/我的是14:36
這是為什么捏?
原因是假如你不在程序或配置文件中設(shè)置你的服務(wù)器當(dāng)?shù)貢r(shí)區(qū)的話
PHP所取的時(shí)間是格林威治標(biāo)準(zhǔn)時(shí)間,所以和你當(dāng)?shù)氐臅r(shí)間會(huì)有出入
格林威治標(biāo)準(zhǔn)時(shí)間和北京時(shí)間大概差8個(gè)小時(shí)左右 那么我們?nèi)绾伪苊鈺r(shí)間誤差呢?
我們一起來看看解決方法:
在頁頭使用date_default_timezone_set()設(shè)置我的默認(rèn)時(shí)區(qū)為北京時(shí)間
<?
date_default_timezone_set('PRC');
echo date('Y-m-d H:i:s');
?>
時(shí)間和服務(wù)器當(dāng)前時(shí)間一樣了!
另外附date_default_timezone_set用法如下:
------------------------------------------------------------------------------------
date_default_timezone_set
(PHP 5 >= 5.1.0RC1)
date_default_timezone_set -- 設(shè)定用于一個(gè)腳本中所有日期時(shí)間函數(shù)的默認(rèn)時(shí)區(qū)
說明
bool date_default_timezone_set ( string timezone_identifier )
date_default_timezone_set() 設(shè)定用于所有日期時(shí)間函數(shù)的默認(rèn)時(shí)區(qū)。
注: 自 PHP 5.1.0 起(此版本日期時(shí)間函數(shù)被重寫了),如果時(shí)區(qū)不合法則每個(gè)對(duì)日期時(shí)間函數(shù)的調(diào)用都會(huì)產(chǎn)生一條 E_NOTICE 級(jí)別的錯(cuò)誤信息。
參數(shù)
timezone_identifier
時(shí)區(qū)標(biāo)識(shí)符,例如 UTC 或 Europe/Lisbon
返回值
本函數(shù)永遠(yuǎn)返回 TRUE(即使 timezone_identifier 參數(shù)不合法)。
-------------------------------------------------------------------------------------
或者修改 php.ini 中 date.timezone 值
date.timezone = PRC
裝上PHP5后你會(huì)發(fā)現(xiàn)這樣的問題
$atime=date("Y-m-d H:i:s");
echo $atime;
?>
輸出:2006-05-16 06:36:06
現(xiàn)在幾點(diǎn)了?/我的是14:36
這是為什么捏?
原因是假如你不在程序或配置文件中設(shè)置你的服務(wù)器當(dāng)?shù)貢r(shí)區(qū)的話
PHP所取的時(shí)間是格林威治標(biāo)準(zhǔn)時(shí)間,所以和你當(dāng)?shù)氐臅r(shí)間會(huì)有出入
格林威治標(biāo)準(zhǔn)時(shí)間和北京時(shí)間大概差8個(gè)小時(shí)左右 那么我們?nèi)绾伪苊鈺r(shí)間誤差呢?
我們一起來看看解決方法:
在頁頭使用date_default_timezone_set()設(shè)置我的默認(rèn)時(shí)區(qū)為北京時(shí)間
<?
date_default_timezone_set('PRC');
echo date('Y-m-d H:i:s');
?>
時(shí)間和服務(wù)器當(dāng)前時(shí)間一樣了!
另外附date_default_timezone_set用法如下:
------------------------------------------------------------------------------------
date_default_timezone_set
(PHP 5 >= 5.1.0RC1)
date_default_timezone_set -- 設(shè)定用于一個(gè)腳本中所有日期時(shí)間函數(shù)的默認(rèn)時(shí)區(qū)
說明
bool date_default_timezone_set ( string timezone_identifier )
date_default_timezone_set() 設(shè)定用于所有日期時(shí)間函數(shù)的默認(rèn)時(shí)區(qū)。
注: 自 PHP 5.1.0 起(此版本日期時(shí)間函數(shù)被重寫了),如果時(shí)區(qū)不合法則每個(gè)對(duì)日期時(shí)間函數(shù)的調(diào)用都會(huì)產(chǎn)生一條 E_NOTICE 級(jí)別的錯(cuò)誤信息。
參數(shù)
timezone_identifier
時(shí)區(qū)標(biāo)識(shí)符,例如 UTC 或 Europe/Lisbon
返回值
本函數(shù)永遠(yuǎn)返回 TRUE(即使 timezone_identifier 參數(shù)不合法)。
-------------------------------------------------------------------------------------
或者修改 php.ini 中 date.timezone 值
date.timezone = PRC
1、修改php.ini,在php.ini中找到data.timezone =去掉它前面的;號(hào),然后設(shè)置data.timezone = “Asia/Shanghai”;即可。
2、在程序PHP 5以上版本的程序代碼中使用函數(shù)ini_set('date.timezone','Asia/Shanghai');或者date_default_timezone_set(‘Asia/Shanghai');
一些常用的時(shí)區(qū)標(biāo)識(shí)符說明:
Asia/Shanghai – 上海
Asia/Chongqing – 重慶
Asia/Urumqi – 烏魯木齊
Asia/Hong_Kong – 香港
Asia/Macao – 澳門
Asia/Taipei – 臺(tái)北
Asia/Singapore – 新加坡
函數(shù)設(shè)置時(shí)區(qū)方法:
復(fù)制代碼 代碼如下:
<?php
function_exists(date_default_timezone_set);//在這他總是返回1,這函數(shù)是判斷這里面的字符是不是一個(gè)定義了的函數(shù)名
date_default_timezone_set("Etc/GMT");//這是格林威治標(biāo)準(zhǔn)時(shí)間,得到的時(shí)間和默認(rèn)時(shí)區(qū)是一樣的
date_default_timezone_set("Etc/GMT+8");//這里比林威治標(biāo)準(zhǔn)時(shí)間慢8小時(shí)
date_default_timezone_set("Etc/GMT-8");//這里比林威治標(biāo)準(zhǔn)時(shí)間快8小時(shí)
date_default_timezone_set('PRC'); //設(shè)置中國(guó)時(shí)區(qū)
?>
函數(shù)ini_set()設(shè)置時(shí)區(qū):
可以在文件開頭加入 ini_set('date.timezone','Asia/Shanghai'); // 'Asia/Shanghai' 為上海時(shí)區(qū)
手動(dòng)修改php.ini設(shè)置
打開php找到date.timezone = "PRC" 如有去掉前面的分號(hào),沒有的話手動(dòng)添加!
以下是一些資料補(bǔ)充:
裝上PHP5后你會(huì)發(fā)現(xiàn)這樣的問題
$atime=date("Y-m-d H:i:s");
echo $atime;
?>
輸出:2006-05-16 06:36:06
現(xiàn)在幾點(diǎn)了?/我的是14:36
這是為什么捏?
原因是假如你不在程序或配置文件中設(shè)置你的服務(wù)器當(dāng)?shù)貢r(shí)區(qū)的話
PHP所取的時(shí)間是格林威治標(biāo)準(zhǔn)時(shí)間,所以和你當(dāng)?shù)氐臅r(shí)間會(huì)有出入
格林威治標(biāo)準(zhǔn)時(shí)間和北京時(shí)間大概差8個(gè)小時(shí)左右 那么我們?nèi)绾伪苊鈺r(shí)間誤差呢?
我們一起來看看解決方法:
在頁頭使用date_default_timezone_set()設(shè)置我的默認(rèn)時(shí)區(qū)為北京時(shí)間
復(fù)制代碼 代碼如下:
<?
date_default_timezone_set('PRC');
echo date('Y-m-d H:i:s');
?>
時(shí)間和服務(wù)器當(dāng)前時(shí)間一樣了!
另外附date_default_timezone_set用法如下:
------------------------------------------------------------------------------------
date_default_timezone_set
(PHP 5 >= 5.1.0RC1)
date_default_timezone_set -- 設(shè)定用于一個(gè)腳本中所有日期時(shí)間函數(shù)的默認(rèn)時(shí)區(qū)
說明
bool date_default_timezone_set ( string timezone_identifier )
date_default_timezone_set() 設(shè)定用于所有日期時(shí)間函數(shù)的默認(rèn)時(shí)區(qū)。
注: 自 PHP 5.1.0 起(此版本日期時(shí)間函數(shù)被重寫了),如果時(shí)區(qū)不合法則每個(gè)對(duì)日期時(shí)間函數(shù)的調(diào)用都會(huì)產(chǎn)生一條 E_NOTICE 級(jí)別的錯(cuò)誤信息。
參數(shù)
timezone_identifier
時(shí)區(qū)標(biāo)識(shí)符,例如 UTC 或 Europe/Lisbon
返回值
本函數(shù)永遠(yuǎn)返回 TRUE(即使 timezone_identifier 參數(shù)不合法)。
-------------------------------------------------------------------------------------
或者修改 php.ini 中 date.timezone 值
date.timezone = PRC
裝上PHP5后你會(huì)發(fā)現(xiàn)這樣的問題
$atime=date("Y-m-d H:i:s");
echo $atime;
?>
輸出:2006-05-16 06:36:06
現(xiàn)在幾點(diǎn)了?/我的是14:36
這是為什么捏?
原因是假如你不在程序或配置文件中設(shè)置你的服務(wù)器當(dāng)?shù)貢r(shí)區(qū)的話
PHP所取的時(shí)間是格林威治標(biāo)準(zhǔn)時(shí)間,所以和你當(dāng)?shù)氐臅r(shí)間會(huì)有出入
格林威治標(biāo)準(zhǔn)時(shí)間和北京時(shí)間大概差8個(gè)小時(shí)左右 那么我們?nèi)绾伪苊鈺r(shí)間誤差呢?
我們一起來看看解決方法:
在頁頭使用date_default_timezone_set()設(shè)置我的默認(rèn)時(shí)區(qū)為北京時(shí)間
復(fù)制代碼 代碼如下:
<?
date_default_timezone_set('PRC');
echo date('Y-m-d H:i:s');
?>
時(shí)間和服務(wù)器當(dāng)前時(shí)間一樣了!
另外附date_default_timezone_set用法如下:
------------------------------------------------------------------------------------
date_default_timezone_set
(PHP 5 >= 5.1.0RC1)
date_default_timezone_set -- 設(shè)定用于一個(gè)腳本中所有日期時(shí)間函數(shù)的默認(rèn)時(shí)區(qū)
說明
bool date_default_timezone_set ( string timezone_identifier )
date_default_timezone_set() 設(shè)定用于所有日期時(shí)間函數(shù)的默認(rèn)時(shí)區(qū)。
注: 自 PHP 5.1.0 起(此版本日期時(shí)間函數(shù)被重寫了),如果時(shí)區(qū)不合法則每個(gè)對(duì)日期時(shí)間函數(shù)的調(diào)用都會(huì)產(chǎn)生一條 E_NOTICE 級(jí)別的錯(cuò)誤信息。
參數(shù)
timezone_identifier
時(shí)區(qū)標(biāo)識(shí)符,例如 UTC 或 Europe/Lisbon
返回值
本函數(shù)永遠(yuǎn)返回 TRUE(即使 timezone_identifier 參數(shù)不合法)。
-------------------------------------------------------------------------------------
或者修改 php.ini 中 date.timezone 值
date.timezone = PRC
您可能感興趣的文章:
- 關(guān)于php程序報(bào)date()警告的處理(date_default_timezone_set)
- PHP跨時(shí)區(qū)(UTC時(shí)間)應(yīng)用解決方案
- PHP中遇到的時(shí)區(qū)問題解決方法
- PHP獲取中國(guó)時(shí)間(上海時(shí)區(qū)時(shí)間)及美國(guó)時(shí)間的方法
- php時(shí)區(qū)轉(zhuǎn)換轉(zhuǎn)換函數(shù)
- php輸出全球各個(gè)時(shí)區(qū)列表的方法
- 有關(guān) PHP 和 MySQL 時(shí)區(qū)的一點(diǎn)總結(jié)
- PHP中設(shè)置時(shí)區(qū),記錄日志文件的實(shí)現(xiàn)代碼
- PHP應(yīng)用跨時(shí)區(qū)功能的實(shí)現(xiàn)方法
- PHP date_default_timezone_set()設(shè)置時(shí)區(qū)操作實(shí)例分析
相關(guān)文章
php中$美元符號(hào)與Zen Coding沖突問題解決方法分享
Zen Coding是使用仿CSS選擇器的語法來快速開發(fā)HTML和CSS ——由Sergey Chikuyonok開發(fā)。 Zen Coding由兩個(gè)核心組件組成:一個(gè)縮寫擴(kuò)展器(縮寫為像CSS一樣的選擇器)和上下文無關(guān)的HTML標(biāo)簽對(duì)匹配器。2014-05-05php封裝的數(shù)據(jù)庫函數(shù)與用法示例【參考thinkPHP】
這篇文章主要介紹了php封裝的數(shù)據(jù)庫函數(shù)與用法,基于thinkPHP中數(shù)據(jù)庫操作相關(guān)代碼整理簡(jiǎn)化而來,包括針對(duì)數(shù)據(jù)庫的設(shè)置、連接、查詢及日志操作等功能,簡(jiǎn)單實(shí)用,需要的朋友可以參考下2016-11-11一文總結(jié)常用PHP業(yè)務(wù)邏輯demo
這篇文章主要為大家介紹了常用PHP業(yè)務(wù)邏輯的demo總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06php下將圖片以二進(jìn)制存入mysql數(shù)據(jù)庫中并顯示的實(shí)現(xiàn)代碼
php把圖片存入mysql教程數(shù)據(jù)庫教程中并在網(wǎng)頁上顯示,一般情況下并不需要將突破保存到數(shù)據(jù)庫中,不論是異地備份還是什么的,都很麻煩,特殊需要的除外。2010-05-05