當服務器上的時間超出12小時時,可能會發生什麼?我在一個朋友的網站上工作,並注意到,雖然服務器在我們的時區,但在向DB寫入記錄時,我們已經晚了12個小時。所以,我不喜歡這樣的檢查:時區問題
<?php echo(gmstrftime("It is %a on %b %d, %Y, %X time zone: %Z",time()));
phpinfo();
?>
結果:
It is Thu on Jul 21, 2011, 04:46:46 time zone: GMT
...
date
date/time support enabled
"Olson" Timezone Database Version 2010.15
Timezone Database internal
Default timezone Pacific/Auckland
Directive Local Value Master Value
date.default_latitude 31.7667 31.7667
date.default_longitude 35.2333 35.2333
date.sunrise_zenit 90.583333 90.583333
date.sunset_zenith 90.583333 90.583333
date.timezone Pacific/Auckland Pacific/Auckland
要問你能看到,PHP報告上午04時46分。這真的是下午4:46。它將GMT報告爲時區,但PHPinfo報告太平洋/奧克蘭爲時區(GMT + 12)。
我問網絡主機發生了什麼事。他們不確定,因爲該系統的時間是正確的。 而且沒有其他的php.ini文件被引入。
想法?
什麼是「時區:GMT」之後的「...」?你要留下什麼東西嗎? – tehvan
問:什麼是數據庫,當您爲數據庫調用「getdate()」(或等價物)時會得到什麼。關於PHP可能仍然是罪魁禍首,請看這裏的問題reconconciling date.default_timezone,$ TZ和date.timezone,:http://www.php.net/manual/en/function.date-default-timezone- get.php – paulsm4
DB是MySQL,時間函數剛剛返回「system」。 引發這次狩獵的軟件是Joomla ......我懷疑這是誤操作時間。 – Onyx