PHP date_default_timezone_set()設置時區操作實例分析
本文實例講述了PHP date_default_timezone_set()設置時區操作。分享給大家供大家參考,具體如下:
<?phpecho function_exists(date_default_timezone_set).'<br>';//在這他總是返回1,這函數是判斷這里面的字符是不是一個定義了的函數名echo date(’Y-m-d H:i:s’).'<br>';//默認時區的時間echo date_default_timezone_set('Etc/GMT').'<br>';//這是格林威治標準時間,得到的時間和默認時區是一樣的echo date(’Y-m-d H:i:s’).'<br>';echo date_default_timezone_set('Etc/GMT+8').'<br>';//這里比林威治標準時間慢8小時echo date(’Y-m-d H:i:s’).'<br>';echo date_default_timezone_set('Etc/GMT-8').'<br>';//由上一個不能難想像,我們比那快8小時所以減8echo date(’Y-m-d H:i:s’).'<br>';echo date_default_timezone_set(’PRC’).'<br>'; //設置中國時區echo date(’Y-m-d H:i:s’).'<br>';//中國標準時間?>
輸出
12009-05-15 02:20:42 //默認時區時間12009-05-15 02:20:42 //('Etc/GMT') 格林威治標準時間12009-05-14 18:20:42 //('Etc/GMT+8') 比林威治標準時間慢8小時12009-05-15 10:20:42 //('Etc/GMT-8') 比林威治標準時間快8小時,是我們的北京時間12009-05-15 10:20:42 //(’PRC’) 中國標準時間
之前有一個遺留問題,就是echo date('y-m-d h:i:s',time())回來的時間總是與實際時間對不上,今天終于在網上找到了原因和解決方法,分享如下:
我補充一點,我按照下面提示的方法修改php.ini找不到date.timezone 這行,是不是就沒辦法了呢,當然不是啦,哈哈沒有的話就自己加嘛,自己動手豐衣足食。我加了這樣一句date.timezone = 'PRC',問題就搞定了,高興一下.
從php5.1.0開始,php.ini里加入了date.timezone這個選項,默認情況下是關閉的
也就是顯示的時間(無論用什么php命令)都是格林威治標準時間
和我們的時間(北京時間)差了正好8個小時,有以下3中方法可以恢復正常的時間。
1,最簡單的方法就是不要用php5.1以上的版本
2,如果一定要用,而且不能修改php.ini,則需要在關于時間的初始化的語句的上面加上 date_default_timezone_set (XXX);cp無此問題
3,一勞永逸,僅限能修改php.ini。打開php.ini查找date.timezone 去掉前面的分號= 后面加XXX,重啟http服務(如apache2或iis等)即可
關于XXX,大陸內地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次為重慶,上海,烏魯木齊)港臺地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次為澳門,香港,臺北)還有新加坡:Asia/Singapore老外好像把北京漏調了其他可用的值是:Etc/GMT-8 ,Singapore ,Hongkong ,PRCPRC是什么?PRC是中華人民共和國啊-_----------------------------------------------------------------------------------------------------------------------
解決方式:
在頁頭使用date_default_timezone_set()設置我的默認時區為北京時間
date_default_timezone_set(’PRC’);echo date(’Y-m-d H:i:s’);
時間和服務器當前時間一樣了!!祝賀之
附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 參數不合法)。
------------------------------------------------------------------------------------------
再附上時區標識符:
CETCST6CDTCubaEETEgyptEireESTEST5EDTEtc/GMTEtc/GMT+0Etc/GMT+1Etc/GMT+10Etc/GMT+11Etc/GMT+12Etc/GMT+2Etc/GMT+3Etc/GMT+4Etc/GMT+5Etc/GMT+6Etc/GMT+7Etc/GMT+8Etc/GMT+9Etc/GMT-0Etc/GMT-1Etc/GMT-10Etc/GMT-11Etc/GMT-12Etc/GMT-13Etc/GMT-14Etc/GMT-2Etc/GMT-3Etc/GMT-4Etc/GMT-5Etc/GMT-6Etc/GMT-7Etc/GMT-8Etc/GMT-9Etc/GMT0Etc/GreenwichEtc/UCTEtc/UniversalEtc/UTCEtc/ZuluFactoryGBGB-EireGMTGMT+0GMT-0GMT0GreenwichHongkongHSTIcelandIranIsraelJamaicaJapanKwajaleinLibyaMETMSTMST7MDTNavajoNZNZ-CHATPolandPortugalPRCPST8PDTROCROKSingaporeTurkeyUCTUniversalUTCW-SUWET
PS:這里再為大家推薦幾款時間及日期相關工具供大家參考:
在線日期/天數計算器:http://tools.jb51.net/jisuanqi/date_jisuanqi
在線日期計算器/相差天數計算器:http://tools.jb51.net/jisuanqi/datecalc
在線日期天數差計算器:http://tools.jb51.net/jisuanqi/onlinedatejsq
Unix時間戳(timestamp)轉換工具:http://tools.jb51.net/code/unixtime
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php日期與時間用法總結》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關文章: