手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

php系統(tǒng)時(shí)區(qū)設(shè)置方法總結(jié)

2016-06-09 12:13:29 9318

php時(shí)區(qū)是一個(gè)非常有意思的問(wèn)題,安裝好apache+php環(huán)境之后會(huì)發(fā)現(xiàn)我們使用date函數(shù)獲取的日期都與中國(guó)時(shí)間有8小時(shí)區(qū)別了,那?這個(gè)時(shí)區(qū)問(wèn)題要如何解決呢?下面本人整理了一些關(guān)于php時(shí)區(qū)設(shè)置方法,有需要的朋友可進(jìn)入?yún)⒖?

時(shí)區(qū)劃分

整個(gè)地球分為24個(gè)時(shí)區(qū),每個(gè)時(shí)序都有自己的本地時(shí)間,同一時(shí)間,每個(gè)時(shí)區(qū)的本地時(shí)間相差1到23個(gè)小時(shí),例如,英國(guó)倫敦本地時(shí)間與北京本地時(shí)間相差8個(gè)小時(shí),在國(guó)際無(wú)線電通信領(lǐng)域,使用一個(gè)統(tǒng)一的時(shí)間,稱為通用協(xié)調(diào)時(shí)間(UTC,Universal Time Coordinated),UTC與格林威治標(biāo)準(zhǔn)時(shí)間(GMT,Greenwich Mean Time)相同,都與英國(guó)倫敦的本地時(shí)間相同

時(shí)區(qū)設(shè)置

由于PHP5.0對(duì)data()函數(shù)進(jìn)行?重寫(xiě),因此,目前的日期時(shí)間函數(shù)比系統(tǒng)時(shí)間少8個(gè)小時(shí)。在PHP語(yǔ)言中默認(rèn)設(shè)置的是標(biāo)準(zhǔn)的格林威治時(shí)間(即采用的是零時(shí)區(qū)),所以要獲取本地當(dāng)前的時(shí)間必須更改PHP語(yǔ)言中的時(shí)區(qū)設(shè)置。

更改PHP語(yǔ)言中的時(shí)區(qū)設(shè)置有兩種方法:

(1)修改php.ini文件中的設(shè)置,找到[date]下的“;date.timezone=”選項(xiàng),將其修改為“date.timezone=Asia/Hong_Kong”,然后重新啟動(dòng)Apache服務(wù)器。

修改PHP.ini這個(gè)文件,找到date.timezone這行,去掉前面的分號(hào),改成:

date.timezone = Asia/Shanghai

修改 .htaccess文件,修改.htaccess文件有兩種辦法,下面的兩條語(yǔ)句只要有一條即可:

php_value date.timezone Asia/Shanghai

SetEnv TZ Asia/Shanghai

(2)在應(yīng)用程序中,在使用時(shí)間日期函數(shù)之前添加如下函數(shù):

  1.  date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai'   亞洲/上海 

  2.  date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'為“亞洲/重慶” 

  3.  date_default_timezone_set('PRC');//其中PRC為“中華人民共和國(guó)” 

  4. i ni_set('date.timezone','Etc/GMT-8'); 

  5.  ini_set('date.timezone','PRC'); 

  6.  ini_set('date.timezone','Asia/Shanghai'); 

  7.  ini_set('date.timezone','Asia/Chongqing'); 

  8. date_default_timezone_set('PRC'); 

  9. //PRC為中華人民共和國(guó)時(shí)區(qū) 

  10. //或者 

  11. <?php  

  12.     date_default_timezone_set("Asia/Kolkata");  

  13.     echo date('d-m-Y H:i:s'); //Returns IST  

  14. ?> 

參數(shù)為PHP可識(shí)別的時(shí)區(qū)名稱,如果時(shí)區(qū)名稱PHP無(wú)法識(shí)別,則系統(tǒng)采用UTC時(shí)區(qū),在PHP手冊(cè)中提供了各個(gè)時(shí)區(qū)名稱列表,其中,設(shè)置我國(guó)北京時(shí)間可以使用的時(shí)區(qū)包括:PRC(中華人民共和國(guó))、Asia/Chongqing(重慶)、Asia/Shanghai(上海)或者Asia/Urumqi(烏魯木齊),這幾個(gè)時(shí)區(qū)名稱等效的.

設(shè)置完成后,date()函數(shù)便可以正常使用,不會(huì)再出現(xiàn)時(shí)差問(wèn)題.

輸出系統(tǒng)的當(dāng)前時(shí)間:

上面是一種設(shè)置系統(tǒng)當(dāng)前時(shí)間的方法,在這里將采用另外一種方式設(shè)置系統(tǒng)當(dāng)前的時(shí)間,即直接在date()函數(shù)之前通過(guò)date_default_timezone_set()函數(shù)設(shè)置系統(tǒng)的時(shí)區(qū),并輸出系統(tǒng)當(dāng)前的日期和時(shí)間,代碼如下:

  1. <?php 

  2. echo "UTC時(shí)間:".date("Y-m-d H:i:s");  //顯示默認(rèn)的UTC時(shí)間 

  3. date_default_timezone_set("PRC");      //使用中華人民共和國(guó)的時(shí)區(qū) 

  4. echo "<br>"

  5. echo "北京時(shí)間:".date("Y-m-d H:i:s");  //輸出北京時(shí)間 

  6. echo "<br>"

  7. echo "中文時(shí)間:".date("Y年m月d日 H時(shí)i分s秒");  //輸出中文格式時(shí)間 

  8. echo "<br>";  //開(kāi)源軟件:phpfensi.com 

  9. echo "當(dāng)前時(shí)區(qū):".date_default_timezone_get();   //獲取當(dāng)前時(shí)區(qū) 

  10. ?> 

測(cè)試,代碼如下:

  1. <?php 

  2. date_default_timezone_set(‘Etc/GMT’); 

  3. //在輸出時(shí)間之前設(shè)置時(shí)區(qū),Etc/GMT為時(shí)間標(biāo)準(zhǔn)時(shí)間 

  4. echo(time());  //開(kāi)源軟件:phpfensi.com 

  5. echo(‘ 

  6. ’); 

  7. echo date(‘Y-m-d H:i:s’, time()); 

  8. echo(‘ 

  9. ’); 

  10. echo gmdate (“Y-m-d H:i:s”, time()); 

  11. echo(‘ 

  12. ’); 

  13. date_default_timezone_set(‘PRC’); 

  14. //在輸出時(shí)間之前設(shè)置時(shí)區(qū),PRC為中華人民共和國(guó) 

  15. echo(time()); 

  16. echo(‘ 

  17. ’); 

  18. echo date(‘Y-m-d H:i:s’, time()); 

  19. echo(‘ 

  20. ’); 

  21. echo gmdate (“Y-m-d H:i:s”, time()); 

  22. ?> 

  23. //結(jié)果: 

  24. 1276257131 

  25. 2010-06-11 11:52:11 

  26. 2010-06-11 11:52:11 

  27. 1276257131 

  28. 2010-06-11 19:52:11 

  29. 2010-06-11 11:52:11 

結(jié)論:time():標(biāo)準(zhǔn)時(shí)間戳

指返回自從 Unix 紀(jì)元(格林威治時(shí)間 1970 年 1 月 1 日 00:00:00)到當(dāng)前時(shí)間(指的是當(dāng)前GMT標(biāo)準(zhǔn)時(shí)間)的秒數(shù),它的值跟php系統(tǒng)設(shè)置的時(shí)區(qū)無(wú)關(guān).

date():返回的是當(dāng)前 GMT標(biāo)準(zhǔn)時(shí)間的本地化時(shí)間的“自定義格式”時(shí)間,跟php系統(tǒng)設(shè)置的時(shí)區(qū)有關(guān).

gmdate():返回的是當(dāng)前 GMT標(biāo)準(zhǔn)時(shí)間的“自定義格式”時(shí)間,跟php系統(tǒng)設(shè)置的時(shí)區(qū)無(wú)關(guān).

unix時(shí)間戳:指的是當(dāng)前(GMT標(biāo)準(zhǔn))時(shí)間離unix紀(jì)元時(shí)間(1970-01-01 00:00:00)的秒數(shù).

  1. date_default_timezone_set(‘Etc/GMT’); 

  2. //在輸出時(shí)間之前設(shè)置時(shí)區(qū),Etc/GMT為時(shí)間標(biāo)準(zhǔn)時(shí)間 

  3. echo(strtotime(’1970-01-01 08:00:00′)); 

  4. echo(‘ 

  5. ’); 

  6. date_default_timezone_set(‘PRC’); 

  7. //在輸出時(shí)間之前設(shè)置時(shí)區(qū),PRC為中華人民共和國(guó) 

  8. echo(strtotime(’1970-01-01 08:00:00′)); 

  9. ?> 

  10. //測(cè)試結(jié)果: 

  11. 28800 

strtotime(a):當(dāng)前時(shí)間的GMT標(biāo)準(zhǔn)時(shí)間的unix時(shí)間戳,如果當(dāng)前php系統(tǒng)的設(shè)置的時(shí)區(qū)不是GMT標(biāo)準(zhǔn)時(shí)區(qū),則在應(yīng)用strtotime(a)時(shí),系統(tǒng)會(huì)自動(dòng)把時(shí)間a折算成相?的GMT標(biāo)準(zhǔn)時(shí)間,然后計(jì)算這個(gè)時(shí)間的unix時(shí)間戳,跟php系統(tǒng)設(shè)置的時(shí)區(qū)有關(guān).



提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: