2012-11-01 67 views
1

time()保持生產的同一時刻,即使在我的php.ini我不斷切換PHP忽略我的date.timezone?

之間

date.timezone = "Asia/Irkutsk"

date.timezone = "Europe/Belgrade"

phpinfo()函數:

date/time support enabled 
"Olson" Timezone Database Version 2012.3 
Timezone Database internal 
Default timezone Asia/Irkutsk 

date/time support enabled 
"Olson" Timezone Database Version 2012.3 
Timezone Database internal 
Default timezone Europe/Belgrade 

時間戳保持不變。怎麼來的?

+0

你有你的時間就在您的本地PC? – rasvi

回答

3

您做出了錯誤的假設。

Unix時間戳總是UTC。沒有例外。 改變時區並不會改變時代的確切時刻(1970年1月1日),因此從那以後的秒數總是「正確的」。

+0

是有道理的。這很奇怪,但我試圖用'Zend_Date :: now()'產生本地時間戳,並且在資源上看起來好像它給出了本地時間戳。當它不存在時 – srgb

+0

沒有真正的本地事件作爲本地時間戳雖然。我認爲你需要重新思考你實際需要達到什麼目標,然後問你如何做到這一點。 – Evert

+0

以及我只是試圖在我的mysql now()和php time()之間同步。 mysql正在汲取系統時間。我將設置mysql來使用UTC :) – srgb

1

您需要在php.ini中進行更改後重新啓動PHP

+0

如果我沒有重新啓動它,更改將不會在php.ini中顯示,並且它們顯然是:) – srgb

+0

它將在php.ini中可見,但它不會在php中加載,對此很抱歉,我認爲這是一個直截了當的猜測,這是因爲埃弗特說的。 – serdarsenay

+0

我的意思是php.ini文件,而不是php信息頁面 – serdarsenay

0

我遇到了這個問題,並與我的主機通話,他們解釋說php.ini中的任何時區設置都被忽略,並且.htaccess文件必須更改如下;

添加此爲.htaccess

php_value date.timezone "Europe/London" 

然後顯示使用

echo date('d-m-Y H:i');