2015-07-03 23 views
2

我最近在我的本地Windows機器上運行的一些PHP代碼(使用IIS)出現故障。PHP能使用localhost時區嗎?

我已經移動時區,並且出現問題,因爲MySQL使用NOW()函數的本地機器時間,但PHP從php.ini文件(或從諸如date_default_timezone_set之類的函數)中確定其時區。

我使用時間戳(來自PHP)創建記錄,一旦它們超過15分鐘(在MySQL中使用NOW()),應該刪除它們。由於時區不同,他們總是超過15分鐘。

我走了一段,我可能並不總是記得更新我的php.ini文件到我目前的時區。

PHP從其ini文件中的date.timezone設置中獲取當前時區。我想可能完全刪除這個工作,但它默認爲UTC。

我意識到一種選擇就是在使用PHP的時間還是MySQL的時間方面是一致的,但我很想知道是否有一種方法可以告訴PHP使用任何時區是機器的時區正在運行。

感謝

+0

您可以使用http://php.net/manual/en/function.date-default-timezone-set.php來設置時區。至於如何獲取本地機器的時區名稱,我不知道。我知道你將如何在Linux或Mac上執行它,但不知道如何在Windows上執行它。 –

回答

0

在Windows中,一個方法是用exec()執行shell命令tzutil /g和讀取輸出,這在我的病例報告Central Standard Time

由於對date_default_timezone_set()來說這似乎不是一個可接受的格式,至少根據List of Supported Timezones,但是您可以有一小段Windows輸出和相應的PHP接受的時區。

+0

偉大的信息。不知道關於tzutil。我已經決定最簡單的辦法就是將兩部分標準化以使用PHP時間。至少它是一致的(儘管我仍然要小心夏令時)。 – xtempore