您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)怎樣解決php時(shí)間函數(shù)獲取時(shí)間錯(cuò)誤的問題,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
php時(shí)間函數(shù)獲取時(shí)間錯(cuò)誤的解決辦法:1、設(shè)定要用的默認(rèn)時(shí)區(qū);2、打開php.ini查找“date.timezone”并去掉前面的分號;3、在程序中添加時(shí)間的初始化的語句即可。
本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1版,Dell G3電腦
如何解決php時(shí)間函數(shù)獲取時(shí)間錯(cuò)誤問題?
php中用date函數(shù)獲取當(dāng)前時(shí)間有誤的解決辦法
初學(xué)PHP做網(wǎng)站,想在頁面上獲得當(dāng)前時(shí)間,學(xué)過編程的人都知道用時(shí)間函數(shù)date(),先用這個(gè)函數(shù)格式化一個(gè)本地時(shí)間/日期,先寫個(gè)測試代碼吧,結(jié)果輸出時(shí)間比實(shí)際時(shí)間少了8小時(shí),這是什么原因呢:
代碼如下:
<?php echo date('Y-m-d H:i:s');
輸出當(dāng)前時(shí)間:2008-10-12 02:32:17
怪了,實(shí)際時(shí)間是:2008-10-12 10:32:17
難道是PHP的date()時(shí)間不正確 少8個(gè)小時(shí)?
再看看PHP手冊的“例子 1. date() 例子”第一行多了一個(gè) 時(shí)區(qū)設(shè)置
// 設(shè)定要用的默認(rèn)時(shí)區(qū)。自 PHP 5.1 可用
date_default_timezone_set('UTC');
原來php5.1.開始,php.ini里加入了date.timezone這個(gè)選項(xiàng),默認(rèn)情況下是關(guān)閉的,也就是顯示的時(shí)間(無論用什么php命令)都是格林威治標(biāo)準(zhǔn)時(shí)間,和北京時(shí)間正好差8個(gè)小時(shí)。
如何設(shè)置可以得到正確的PHP時(shí)間?
1、修改php.ini。打開php.ini查找date.timezone 去掉前面的分號= 后面加Asia/Shanghai,重啟apache服務(wù)器即可--缺點(diǎn)就是如果程序
放到別人的服務(wù)器上,不能修改php.ini,那就奈何不得了。
2、在程序中添加時(shí)間的初始化的語句的 即:“date_default_timezone_set("Asia/Shanghai"); ”這個(gè)可以由程序員任意設(shè)置,我的推薦。
時(shí)區(qū)標(biāo)識符,大陸內(nèi)地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次為中國,重慶,上海,烏魯木齊) ,Etc/GMT-8,Asia/Harbin
港臺地區(qū)可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次為澳門,香港,臺北)還有新加坡:Asia/Singapore
這樣就可以實(shí)現(xiàn)輸出的是北京時(shí)間了。
更詳細(xì)的時(shí)區(qū)代碼 時(shí)區(qū)編碼 時(shí)區(qū)索引碼 timezone_identifier 大家可以在官方網(wǎng)站中查到。
看完上述內(nèi)容,你們對怎樣解決php時(shí)間函數(shù)獲取時(shí)間錯(cuò)誤的問題有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。