簡體   English   中英

php.ini'date.timezone'無效

[英]php.ini 'date.timezone' doesn't have any effect

在我的php.ini中,我設置了:

date.timezone = "Etc/UTC"

服務器的時間也是UTC + 0,但是當我嘗試使用此腳本獲取時區時:

<?php print(date_default_timezone_get()); ?>

它返回

歐洲/柏林

這是UTC+2而不是UTC+0 ,我不知道它如何到達那里。

只是為了澄清:

  • 我已在正確的路徑中保存了正確的文件,然后重新啟動了服務器
  • 我不想修改腳本,因為我經常使用date()方法
  • 我希望僅通過更改配置,使時間成為PHP的UTC+0
  • 我希望它始終是UTC+0 ,而忽略夏季/冬季

該行肯定是更改默認時區的正確位置。

  1. 您實際上是在更改正確的php.ini嗎? 某些設置可以具有多個.ini文件。 運行phpinfo(); 並檢查“ 已加載的配置文件”以查看是否是該文件。

  2. 檢查文件中是否沒有該參數的其他定義。 如果您只是將其復制粘貼到任何地方,它可能會覆蓋您設置的內容。

  3. 檢查代碼是否不覆蓋您在.ini文件中設置的內容。 date_default_timezone_set()在PHP中對其進行設置(並覆蓋)。

  4. 檢查phpinfo()以獲得有關當前時區的更多信息。

您是否為您的Web服務器用戶檢查了“ TZ”環境變量? 如果已設置,則date.timezone php.init設置將無法按預期工作,如php手冊中所述

date.timezone字符串所有日期/時間函數使用的默認時區。 在PHP 5.4.0之前,只有在未設置TZ環境變量的情況下,這才起作用。 如果date_default_timezone_get()頁中描述了未明確提及時區的時區優先順序。

在評論中, Minesh Patel告訴我檢查是否覆蓋了我的選擇,因此我在php.ini中搜索了Europe/Berlin ,結果發現還有另一個date.timezone覆蓋了它。

我建議您參考此列表以選擇您的時區:

PHP時區

警告:請勿使用以下鏈接中列出的任何時區,它們僅出於向后兼容的原因存在, 除了UTC之外

PHP時區僅出於向后兼容的原因

強烈建議您使用正確的時區,例如Europe / Berlin

date.timezone = "Europe/Berlin"

在您的php.ini文件中找到“歐洲/柏林”(使用phpinfo()獲取文件的正確路徑;)

在某些情況下,“ date.timezone”參數在文件中出現兩次。

確保您從此處輸入正確的時區(php時區)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM