PHP獲取時間比實際時間少--解決

調用date()函數

--------------------------------------------------------------------------------------------------------------------

有兩方法

1、我們寫PHP程序在獲取時間時,人爲加上(這種方法是最實用也是最土的方法)

2、如果直接獲取正確時間,也可修改PHP的配置文件,即查找php.ini文件 修改方法:在php.ini文件中找到下面這行: ;date.timezone = 將上面這行的;註釋符去掉,後面加上PRC(中國人民共和國的英文單詞縮寫),即改成下面這樣: date.timezone = PRC 如果php.ini文件中沒有上面這行,直接加上就行了

 從php5.10開始,php中加入了時區的設置,在php中顯示的時間都是格林威治標準時間,這就造成了我們中國的用戶會差八個小時的問題!
相關設置是修改php.ini中的 date.timezone 參數:
[Date]
; Defines the default timezone used by the date functions
;date.timezone =

默認是關閉的,只需把註釋去掉,改爲即可
[Date]
; Defines the default timezone used by the date functions
date.timezone = PRC

其中PRC是“中華人民共和國”!
其他選項可以參考php手冊。
不過這上面的亞洲地區漏掉了我們的首都北京,不知道老外是不是故意的!

如果沒有修改php.ini的權限,只需要在調用時間日期函數的時候,調用 date_default_timezone_set(’PRC’) 即可!
也可以調用date_default_timezone_get()來查看當前的時區設置!

關於XXX,大陸內地可用的值是:
Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次為重慶,上海,烏魯木齊)
港臺地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次為澳門,香港,臺北)
臺灣地區可設為:date.timezone = "Asia//Taipei"
還有新加坡:Asia/Singapore


安裝好php5後,在論壇不經意間,在論壇上看到有人說php5.1.2的時間顯示整整少8個小時,
<?php
    echo date("Y-m-d H:i:s");
?>
結果自己測試果然是相差8小時。
  
   後來經過在論壇上找資料,結果終於解決,在php5以及起以上的版本,要輸出本地的時間(限中國),可以這麼寫代碼:
<?php
   date_default_timezone_set('Asia/Shanghai');
   echo date('Y-m-d H:i:s');
?>

也可以這樣寫代碼:
<?php
   date_default_timezone_set('Asia/Chongqing');
   echo date('Y-m-d H:i:s');
?>
  
這樣 時間相差八小時的問題就解決了!!~~~

--------------------------------------------------------------------------------------------------------------------

至於爲什麼只有上海和重慶,卻沒有北京,我也不是太清楚

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章